1 Operator概述
1.1 诞生背景
Kubernetes实际是期望状态管理器。先在Kubernetes中指定应用程序期望状态(实例数,磁盘空间,镜像等),然后它会尝试把应用维持在这种状态。Kubernetes的控制平面运行在Master节点上,它包含数个controller以调和应用达到期望状态:
- 检查当前的实际状态(Pod、Deployment等)
- 将实际状态与spec期望状态进行比较
- 如果实际状态与期望状态不一致,controller将会尝试协调实际状态以达到一致
比如,通过RS定义Pod拥有3个副本。当其中一个Pod down掉时,Kubernetes controller通过wacth API发现期望运行3个副本,而实际只有2个副本在运行。于是它新创建出一个Pod实例。如图所示,controller在Kubernetes中发挥的作用。
- 通过Kubectl命令发送对象spec定义(Pod,Deployment等)到Kubernetes Master节点的API服务
- Master节点调度对象运行
- 一旦对象运行,controller会持续检查对象并根据spec协调实际情况