CoreOS Kubernetes运算符与本机Kubernetes初始化程序有何不同?

时间:2017-09-13 03:34:31

标签: kubernetes coreos

Kubernetes 1.7具有名为initializers的alpha功能。 CoreOS具有operator的概念。两者似乎都涉及部署代码,这些代码监视Kubernetes API服务器以获取资源的更改 - 可能是集群中的自定义 - 基于这些资源包含的注释以及代码理解的内容。

区别是什么?如果初始化程序是核心平台的一部分,那么为什么我需要创建一些新的东西来做我看起来像同样的事情呢?

2 个答案:

答案 0 :(得分:0)

Kubernetes在1.7之前拥有初始化方式的概念,但后来它们是API服务器的固定部分。您链接到的新initializers功能主要是将这些部分与API服务器分离:

  

今天,每个插件都必须编译成Kubernetes。随着Kubernetes的发展,除了粗粒度访问控制之外的所有策略实施都要求通过树内编译和分发变得笨拙并限制管理员和生态系统的发展。

(来自the design document

答案 1 :(得分:0)

操作员是独立的“微服务”,可以连续且异步地将配置的期望状态与系统当前状态进行协调。初始化程序是同步钩子,它们在创建或更新运行时对象之前对其进行验证或突变。另请参阅准入控制器。它们通常被烘焙成某种“微服务”。当您考虑运行时对象的生命周期时,初始化程序将首先起作用,就像一次。然后,观察运行时对象的操作员可以根据其所需的定义来协调系统。