做企业官网要多少资金和时间,南通网站优化公司,红酒网络营销策划方案,聊城市住房和城乡建设局网站------ 课程视频同步分享在今日头条和B站
大家好#xff0c;我是博哥爱运维。对于运维开发人员来说#xff0c;不管是哪个平台服务#xff0c;监控都是非常关键重要的。
在传统服务里面#xff0c;我们通常会到zabbix、open-falcon、netdata来做服务的监控#xff0…------ 课程视频同步分享在今日头条和B站
大家好我是博哥爱运维。对于运维开发人员来说不管是哪个平台服务监控都是非常关键重要的。
在传统服务里面我们通常会到zabbix、open-falcon、netdata来做服务的监控但对于目前主流的K8s平台来说由于服务pod会被调度到任何机器上运行且pod挂掉后会被自动重启并且我们也需要有更好的自动服务发现功能来实现服务报警的自动接入实现更高效的运维报警这里我们需要用到K8s的监控实现Prometheus它是基于Google内部监控系统的开源实现。
Prometheus架构图 Prometheus是由golang语言编写这样它的部署实际上是比较简单的就一个服务的二进制包加上对应的配置文件即可运行然而这种方式的部署过程繁琐并且效率低下我们这里就不以这种传统的形式来部署Prometheus来实现K8s集群的监控了而是会用到Prometheus-Operator来进行Prometheus监控服务的安装这也是我们生产中常用的安装方式。
从本质上来讲Prometheus属于是典型的有状态应用而其有包含了一些自身特有的运维管理和配置管理方式。而这些都无法通过Kubernetes原生提供的应用管理概念实现自动化。为了简化这类应用程序的管理复杂度CoreOS率先引入了Operator的概念并且首先推出了针对在Kubernetes下运行和管理Etcd的Etcd Operator。并随后推出了Prometheus Operator。
Prometheus Operator的工作原理
从概念上来讲Operator就是针对管理特定应用程序的在Kubernetes基本的Resource和Controller的概念上以扩展Kubernetes api的形式。帮助用户创建配置和管理复杂的有状态应用程序。从而实现特定应用程序的常见操作以及运维自动化。
在Kubernetes中我们使用Deployment、DamenSetStatefulSet来管理应用Workload使用ServiceIngress来管理应用的访问方式使用ConfigMap和Secret来管理应用配置。我们在集群中对这些资源的创建更新删除的动作都会被转换为事件(Event)Kubernetes的Controller Manager负责监听这些事件并触发相应的任务来满足用户的期望。这种方式我们成为声明式用户只需要关心应用程序的最终状态其它的都通过Kubernetes来帮助我们完成通过这种方式可以大大简化应用的配置管理复杂度。
而除了这些原生的Resource资源以外Kubernetes还允许用户添加自己的自定义资源(Custom Resource)。并且通过实现自定义Controller来实现对Kubernetes的扩展。
如下所示是Prometheus Operator的架构示意图 Prometheus的本职就是一组用户自定义的CRD资源以及Controller的实现Prometheus Operator负责监听这些自定义资源的变化并且根据这些资源的定义自动化的完成如Prometheus Server自身以及配置的自动化管理工作。
Prometheus Operator能做什么
要了解Prometheus Operator能做什么其实就是要了解Prometheus Operator为我们提供了哪些自定义的Kubernetes资源列出了Prometheus Operator目前提供的️4类资源
Prometheus声明式创建和管理Prometheus Server实例ServiceMonitor负责声明式的管理监控配置PrometheusRule负责声明式的管理告警配置Alertmanager声明式的创建和管理Alertmanager实例。
简言之Prometheus Operator能够帮助用户自动化的创建以及管理Prometheus Server以及其相应的配置。