首页 » 翻译 » Kubernetes » 正文

Kubernete 开发系列 运行第一个operator etcd

etcd 是一个很好的例子,对于我们来说,我们只需要知道怎么把值放进去,然后怎么取出来,至于怎么认证,怎么升级,怎么管理,我们并不关心,所以,我们不关心的部分Operator帮我们管理

想要运行这个operator,首先我们要先创建一个CRD ,也就是说,Kuberntes 原生是不知道什么etcd的,也不知道该怎么帮你创建(原生支持的pod,例如你告诉kubernetes创建一个pod,它知道怎么创建,但是如果你如果什么都不做,直接让kubernetes创建一个etcd 资源,它就傻了),所以,我们首先要告诉Kubernetes 我们的etcd是怎么定义的

 

然后,我们还需要一个serviceaccount , 因为我们要有权限能够运行一个etcd Operator(因为资源是新的,kubernetes也没有提前帮你分配相应的权限)

 

接下来,我们就要分配给我们刚刚的serviceaacount分配权限,kubernetes的权限管理RBAC之前也整理过,

role 部分(定义了谁挂载了这个role就有权限对etcdclusters ,etcdbackups,etcdresores有*的权限,当然下边还额外给了Pod ,service等权限)

Role binding部分(这地方把我们的serviceaccount和role绑定了)

准备工作这里就结束了,这个时候,我们已经教会了Kubernetes 认识我们自定义的资源,这个时候我们就要把Operator启动起来,Operator就是一个pod, 这个pod会监听所有的资源创建,如果有人说自己要创建一个etcd,它就会和kubernetes说我来创建,这个pod里边写了如何备份,如何启动,如何调整集群相关的业务逻辑代码

这个就是operator pod的定义,所有核心的代码都在image 中,我们要做的就是,把这个pod 资源run起来

这个时候,所有的准备工作就完成了,这个时候我们就可以和创建deployment一样创建一个etcd cluster了

 

 

 

 

Zhiming Zhang

Senior devops at Appannie
一个奔跑在运维路上的胖子
Zhiming Zhang

Latest posts by Zhiming Zhang (see all)