Kubernetes prometheues operator 与 helm chart 之间的区别

Hou*_*und 17 kubernetes

谁能简单解释一下通过 Kubernetes operator 部署 Prometheus 和 Prometheus helm chart 或 manifest 文件有什么区别?这个问题不仅与普罗米修斯有关,而且与普罗米修斯有关

Sha*_*k V 21

一般而言头盔就像是一个包管理器用于kubernetes而操作者是一个控制器,其管理特定kubernetes资源(多个)的生命周期。

Operator 是“自定义资源”和管理自定义资源的“控制器”的组合。有许多本地 kubernetes 资源,如 pod、部署、状态集、服务等。每个资源都有一个相应的控制器进程在运行(当前在控制器管理器中)。例如,当您使用例如创建/修改本机 kubernetes 资源kubectl apply之一的实例时,新的/更新的对象将存储在 etcd 中,并且 api-server 将通知控制器有关更改。etcd 中的规范称为所需状态。控制器的工作是识别集群的实际状态并将其与所需状态相协调。

与原生 kubernetes 资源类似,kubernetes 也允许您使用“自定义资源定义”创建新类型的资源。您还可以编写一个控制器,其工作是协调您的新自定义资源。这称为运算符。通常操作符是用来管理 kubernetes 上应用程序的部署和生命周期的。因此,Prometheus 开发人员创建了一个名为Prometheus(您可以使用它来表达 Prometheus 集群的所需状态)的自定义资源和一个将所需状态与实际状态相协调的控制器。这个控制器叫做 Prometheus 算子。

Helm 是kubernetes 资源的包管理器,这些资源通常被声明为基于 yaml 的清单。Helm 允许您对这些 yaml 清单进行模板化,以便在实际集群中部署资源时可以为这些模板化片段替换不同的值。您可以部署各种 kubernetes 资源,包括所有原生资源,如 pods、services、deployments 等。 Operators 也作为 pods 在 kubernetes 集群上运行,因此 helm 也可用于部署 Operators。

您可以在此处阅读有关自定义资源和自定义控制器的信息 - https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#custom-resources

  • 这如何回答最初的问题? (4认同)
  • OP 确实提到“这个问题不仅与普罗米修斯有关,而且与一般情况有关。” 你能告诉我原来问题的哪一部分没有得到回答吗? (2认同)

小智 9

prometheus 和 prometheus operator 都可以通过 helm charts 安装。安装 prometheus operator 时有此图表,而仅部署 prometheus 时有此图表

所以你的问题更像是:安装操作员与直接安装应用程序之间有什么区别。

答案是操作符为你做了更多的事情,一个例子是它使服务发现更容易:为了从服务中获取数据,你通常必须向它添加一个注释,改变目标服务,而对于操作符,你只需创建 ServiceMonitor 资源。