回答问题

据我了解,Kubernetes 控制器的目的是确保当前状态等于所需状态。尽管如此,Kubernetes Operator 做同样的工作。

控制平面中的控制器列表:

  • 部署

  • 副本集

  • 有状态集

  • DaemonSet

从谷歌搜索发现有K8s Operators如

  • etcd 运算符

  • 普罗米修斯算子

  • kong 运营商

但是,我无法理解为什么不能使用 Controller 完成它?

操作员是对控制器的补充吗?

这两种设计作为目的和功能有什么区别。

在控制器和操作员之间进行选择时需要记住哪些特定事项? ?

Answers

我相信“kubernetes operator”这个词是这里的CoreOS人介绍的

Operator 是一个特定于应用程序的控制器,它扩展了 Kubernetes API 以代表 Kubernetes 用户创建、配置和管理复杂有状态应用程序的实例。它建立在基本的 Kubernetes 资源和控制器概念之上,但还包括域或特定于应用程序的知识,以自动化由计算机更好地管理的常见任务。

因此,基本上,kubernetes 操作符是由 kubernetes 控制器组成的模式的名称,该控制器向 Kubernetes API 添加新对象,以便配置和管理应用程序,例如 Prometheus 或 etcd。

一句话:运营商是特定领域的控制器。

更新

在 Github上有一个关于这个相同主题的新讨论,链接到同一个博客文章。讨论的相关部分是:

所有 Operator 都使用控制器模式,但并非所有控制器都是 Operator。如果它有,它只是一个 Operator:控制器模式 + API 扩展 + 单应用程序焦点。

Operator 是使用 CRD 实现的定制控制器。它遵循与内置控制器相同的模式(即 watch、diff、action)。

更新 2

我发现一篇新的博文也试图解释差异。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐