作者:程序源234
来源:CSDN
原文:https://blog.csdn.net/yan234280533/article/details/75333246
1.what
Operator是CoreOS推出的旨在简化复杂有状态应用管理的框架,它是一个感知应用状态的控制器,通过扩展Kubernetes API来自动创建、管理和配置应用实例。
2.Operator原理
Operator基于Third Party Resources扩展了新的应用资源,并通过控制器来保证应用处于预期状态。比如etcd operator通过下面的三个步骤模拟了管理etcd集群的行为:
通过Kubernetes API观察集群的当前状态;
分析当前状态与期望状态的差别;
调用etcd集群管理API或Kubernetes API消除这些差别。
Operator本质是通过在Kubenertes中部署对应的Third-Party Resource (TPR)插件,然后通过部署Third-Party Resource的方式来部署对应的应用。Third-Party Resource会调用Kubenertes部署API部署相应的Kubenertes资源,并对资源状态进行管理。
3. 如何创建Operator
Operator是一个感知应用状态的控制器,所以实现一个Operator最关键的就是把管理应用状态的所有操作封装到配置资源和控制器中。通常来说Operator需要包括以下功能:
Operator自身以deployment的方式部署
Operator自动创建一个Third Party Resources资源类型,用户可以用该类型创建应用实例
Operator应该利用Kubernetes内置的Serivce/ReplicaSet等管理应用
Operator应该向后兼容,并且在Operator自身退出或删除时不影响应用的状态
Operator应该支持应用版本更新
Operator应该测试Pod失效、配置错误、网络错误等异常情况