Kubernetes Controller 和 Kubernetes Operator 有什么区别?
回答问题
据我了解,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
我发现一篇新的博文也试图解释差异。
更多推荐
所有评论(0)