Kubernetes Operator是啥?
Operators are software extensions to Kubernetes that make use of custom resources to manage applications and their components. Operators follow Kubernetes principles, notably the control loop.
Operator 是 Kubernetes 的扩展软件,通过自定义资源,管理应用及其组件。 Operator 遵循 Kubernetes 的理念,特别是在控制回路方面。
Kubernetes自定义资源包括Custom resources 和 Custom controllers。
Operator 模式旨在捕获(正在管理一个或一组服务的)运维人员的关键目标。负责特定应用和service的运维人员,在系统应该如何运行、如何部署以及出现问题时如何处理等方面有深入的了解。
在 Kubernetes 上运行工作负载的人们都喜欢通过自动化来处理重复的任务。Operator 模式会封装我们编写的(Kubernetes 本身提供功能以外的)任务自动化代码。
Operator可以自动化的事情包括:
- 按需部署应用
- 获取/还原应用状态的备份
- 处理应用代码的升级以及相关改动。例如,数据库 schema 或额外的配置设置
- 发布一个 service,要求不支持 Kubernetes API 的应用也能发现它
- 模拟整个或部分集群中的故障以测试其稳定性
- 在没有内部成员选举程序的情况下,为分布式应用选择首领角色
简单来说,Kubernetes实际是期望状态管理器,如果Kubernetes本身提供的功能无法达到期望状态,特别是对于有状态应用,那么就需要手动处理,而Operator可以使这种处理自动化。
更多内容,参考Operator 模式。
本文中,将会学习编写一个Operator,并应用到k8s集群。