Kubernetes operator 是 Kubernetes 特定的应用程序(pod),可以自动配置、管理和优化其他 Kubernetes 部署。它们被实现为自定义控制器。
根据coreOS官方网站:
Operator 是 CoreOS 引入的一类软件,用于操作其他软件,将人类收集的操作知识放入软件中。
prometheus operator 提供了一种在 Kubernetes 集群上部署配置和监控 prometheus 实例的简单方法。为此,prometheus operator 在 kubernetes 中引入了三种自定义资源定义(CRD)。
- 普罗米修斯
- 警报管理器
- 服务监视器
现在,借助上述 CRD,您可以通过提供 kind: Prometheus 直接创建一个 prometheus 实例,并且该 prometheus 实例已准备好服务,同样您可以为 AlertManager 做。如果没有这个,你将不得不为 prometheus 设置部署,包括它的镜像、配置和更多的东西。
Prometheus Operator 可让在 Kubernetes 上运行 Prometheus 尽可能简单,同时保留 Kubernetes 原生配置选项。
现在,kube-prometheus 实现了 prometheus 运算符,并为您提供最少的 yaml 文件,通过运行单个命令来创建 prometheus、alertmanager 和 grafana 的基本设置。
git clone https://github.com/coreos/prometheus-operator.git
kubectl apply -f prometheus-operator/contrib/kube-prometheus/manifests/
通过在 kube-prometheus 目录中运行上述命令,您将获得一个 monitoring 命名空间,其中将有一个 alertmanager 实例,prometheus 和 grafana 用于 UI。这对于大多数基本实现来说已经足够了,如果您需要根据您的应用程序的更多细节,您可以添加更多您需要的导出器 yaml。
Kube-prometheus 更多的是对 prometheus-operator 项目的贡献,它很好地实现了 prometheus operator 功能,并为您的 kubernetes 集群提供了完整的监控设置。您可以从 kube-prometheus 开始,然后根据您的应用程序从那里扩展监控设置的功能。
您可以了解更多关于 prometheus-operator here