深入剖析Kubernetes-聪明的微创新:Operator工作原理解读

Operator一种简化管理有状态应用的机制,基于CRD(Customer Resource Definition机制)的扩展实现。Operator本质上也是一种Deployment Controller,下面以etcd-operator举例:

  1. 为operator角色赋予RBAC权限,operator需要与API Server交互。
    1. 对 Pod、Service、PVC、Deployment、Secret 等 API 对象有所有权限
    2. 对 CRD 对象有所有权限
    3. 对属于 etcd.database.coreos.com 这个 API Group 的 CR(Custom Resource)对象有所有权限。
  2. 部署etcd-operator,etcd-operator本质上是一个deployment,yaml如下:
    深入剖析Kubernetes-聪明的微创新:Operator工作原理解读
  3. 创建Operator定义的EtcdCluster类型的对象创建具体的etcd集群,通过size参数指定该集群共有3个节点,yaml如下所示:深入剖析Kubernetes-聪明的微创新:Operator工作原理解读

Operator本质上是基于CRD机制定义了自定义资源类型并监听该基于该自定义类型定义的所有对象,并根据集群的启动命令来保整集群的健康状态。

etcd的工作流程图如下所示:
深入剖析Kubernetes-聪明的微创新:Operator工作原理解读