基本信息
RKE 版本:
rke version v1.2.6
K8S 版本:
v1.20.4
Docker 版本: (docker version
,docker info
)
docker-ce19.03.4
操作系统和内核: (cat /etc/os-release
, uname -r
)
centos7.6 5.4.90-1.el7.elrepo.x86_64
主机类型和供应商: (VirtualBox/Bare-metal/AWS/GCE/DO)
VirtualBox
由于场景需要,要对rke up启动的集群升级单独的k8s组件的版本,然而,在rke中,所有的K8s组件都被打包在一个hyperkube:v1.20.4-rancher1镜像中,是否有官方的升级单个组件的方式?
目前我们采用的方式如下:
- 将hyperkube:v1.20.4-rancher1镜像中的kube-controller-manager二进制替换为编译出来的新的kube-controller-manager二进制,使用与原来一致的tag,然后将新的hyperkube镜像上传到镜像仓库中;
- 在集群的所有master节点,删除kube-controller-manager容器;
- 在集群的所有master节点,重新拉取hyperkube镜像;
- 重新执行rke up,会在所有master节点重新拉起kube-controller-manager容器;
这种升级方式是否是官方支持的升级方式?是否会引入一些未知的风险?