k8s Operator
k8s Operator
什么是Operator
operator其实就是两个部分: 控制器 + 用户自定义资源
-
控制器:其实ReplicaSet,deployment,statefulset等就都是控制器,只是operator是一个用户自己实现的控制器(可以是go程序也可以是脚本,本质就是调用k8sAPI的小程序),他可以部署在k8s集群中
-
用户自定义资源:可以理解为我们平时写ReplicaSet,deployment,statefulset等yaml时,出现的字段名以及这些字段的类型,长度等等的定义
大白话来讲,Operator的场景就是专门给有状态应用而设计的。
- 因为无状态应用简单啊,没有服务间的交互,要再开一家火锅店,跟k8s说一声,开一家一样的就可以了。
- 有状态不一样,你开了一家火锅店以后,客户的信息怎么同步,就涉及到与别的火锅店交涉的问题,当然你也可以写个别的程序做这个数据同步的操作。
但是operator做的事情就是能自动识别到火锅店客户信息的不对称,主动同步,你只用告诉operator我要再开一家连锁火锅店就好了。