Operator 初体验
Kubernetes 1.7 版本以来就引入了自定义控制器的概念,该功能可以让开发人员扩展添加新功能,更新现有的功能,并且可以自动执行一些管理任务。
Operator 是由 CoreOS 开发的,用来扩展 Kubernetes API 的控制器框架,它用来创建、配置和管理复杂的有状态应用,如数据库、缓存和监控系统。
Operator 基于 Kubernetes 的资源和控制器概念之上构建,但同时又包含了应用程序特定的领域知识。
这些自定义的控制器就像 Kubernetes 原生的组件一样,Operator 直接使用 Kubernetes API 进行开发,也就是说可以根据这些控制器内部编写的自定义规则来监控集群、更改 Pods/Services、对正在运行的应用进行扩缩容。
创建 Operator 的关键是 CRD(自定义资源)的设计。本文将通过虚拟需求,设计 CRD 并实现 CRD 的控制逻辑,以体验 Operator 的开发过程。