手动升级容器服务 kubernetes cloud-controller-manager组件

cloud-controller-manager是kubernetes与云厂商提供的服务能力对接的关键组件。又称kubernetes cloudprovider. 通过这个组件,可以让用户在创建k8s LoadBalancer 类型的service的时候自动的为用户创建一个阿里云SLB,同时动态的绑定与解绑SLB后端,并且提供了丰富的配置允许用户自定义生成的LoadBalancer.

由于当前容器服务的自动化升级功能仍在完善中,为应对cloudprovider版本的持续迭代问题,我们提供了以下的方式来让用户手动升级集群的cloudprovider.

功能更新参考 release note

1. 更新cloud-controller-manager的镜像到最新版本v1.9.3-16-gcc144c7-aliyun

registry-vpc.${regionid}.aliyuncs.com/acs/cloud-controller-manager-amd64:v1.9.3-16-gcc144c7-aliyun

注意:直接执行下面的命令即可,不用修改:

root@master# kubectl get ds -n kube-system cloud-controller-manager -o yaml |grep image:|awk -F "image: " '{print $2}'|awk -F ":" '{print $1}'|xargs -I '{}' kubectl set image ds/cloud-controller-manager -n kube-system cloud-controller-manager={}:v1.9.3-16-gcc144c7-aliyun

2. 修改cloud-controller-manager的启动参数

执行下面的命令,打开一个编辑器,

root@master #  kubectl edit ds -n kube-system cloud-controller-manager

给cloudp-controller-manager容器添加一个启动参数
--allow-untagged-cloud=true (位置在cloud-controller-manager下面),如果已有改启动参数,则忽略本步骤。修改后的效果如下:
手动升级容器服务 kubernetes cloud-controller-manager组件

注意格式对齐。

3. 重启cloud-controller-manager

root@master# kubectl get po -n kube-system|grep cloud-con|awk '{print $1}'|xargs -I '{}' kubectl delete po -n kube-system {}

Done.

上一篇:Kubernetes集群支持VPC多路由表


下一篇:CloudProvider Release Notes