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下面),如果已有改启动参数,则忽略本步骤。修改后的效果如下:
注意格式对齐。
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.