亲历者说: Kubernetes API 与 Operator, 不为人知的开发者战争(11)

这个想法 , 其实是很多应用开发者以及 PaaS 用户的强烈需求 , 也是一直以来萦绕在 CoreOS 公司 CEO Alex Polvi 脑海里的一个念头 。 而在一次简单的内部讨论提及之后 , 这个念头很快就激发出了两位工程师的技术灵感 , 成为了周四结对编程的新主题 。
而这一次 , 他们决定把这个小项目 , 起名叫做:Operator 。

所以顾名思义 , Operator 这个项目最开始的初衷 , 是用来帮助开发者实现运维(Operate)能力的 。 但 Operator 的核心思想 , 却并不是“替开发者做运维工作” , 而是“让开发者自己编写运维工具” 。 更有意思的是 , 这个运维工具的编写标准 , 或者说 , 编写 Operator 代码可以参考的模板 , 正是 Kubernetes 的“控制器模式(Controller Pattern)” 。

前面已经说过 , Kubernetes 的“控制器模式” , 是围绕着比如 Pod 这样的 API 对象 , 在 Controller 通过响应它的增删改查来定义对 Pod 的编排动作 。

而 Operator 的设计思路 , 就是允许开发者在 Kubernetes 里添加一个新的 API 对象 , 用来描述一个分布式应用的集群 。 然后 , 在这个 API 对象的 Controller 里 , 开发者就可以定义对这个分布式应用集群的运维动作了 。

推荐阅读