Operator 介绍
当服务都运行在 K8s 集群中时,其中有一个叫做 cloudpods-operator 的 deployment,用于部署和控制其它服务的所需要的 K8S 资源,这里介绍下这个叫做 operator 组件的操作。
cloudpods-operator 是单独编写的一个组件,作为一个长期运行的服务运行在 Kubernetes 集群内部,作用是自动搭建和维护 Cloudpods 所有服务。详细的介绍可以参考 cloudpods-operator 工作原理。
简介
operator 在 K8S 里面创建一个叫做 OnecloudCluster 的资源,该资源里面定义了各个服务组件要使用的 docker 镜像仓库和版本,通过修改 OnecloudCluster 这个资源,可以实现对各个服务多方面的镜像版本控制。
# 查看 OnecloudCluster 资源
$ kubectl get onecloudclusters.onecloud.yunion.io -n onecloud
NAME KEYSTONE
default registry.cn-beijing.aliyuncs.com/yunionio/keystone:archdev-v36
# 查看 default OnecloudCluster 资源的 YAML 详情
$ kubectl get onecloudclusters.onecloud.yunion.io -n onecloud default -o yaml
# 进入 edit 编辑界面
$ kubectl edit onecloudclusters -n onecloud default
镜像控制
OnecloudCluster 资源的镜像版本控制的关键属性简介如下:
| 属性 | 作用 | 默认值 |
|---|---|---|
| .spec.imageRepository | 控制所有服务的镜像仓库地址 | registry.cn-beijing.aliyuncs.com/yunionio |
| .spec.version | 控制所有服务镜像的 tag | 由部署时指定,比如 'v3.6.9' |
| .spec.$(组件名).repository | 控制该组件镜像的仓库地址 | 默认没有设置,可以通过设置该值单独控制组件的镜像仓库 |
| .spec.$(组件名).tag | 控制该组件镜像的 tag | 默认没有设置,可以通过设置该值单独控制组件的 tag |