hsdtsylK零S
- 已编辑
背景
问题: 青云 kubesphere 在 k8s 集群容器 runtime 为 containerd 时,创建 Secret 时提示找不到 dockerd !
集群环境介绍:
使用 kubeasz 搭建,容器 runtime 使用 containerd,而不是dockerd
操作步骤
实现思路
- 停止调度部分集群节点
- 删除 k8s 集群环境
- 重新安装容器运行时环境
操作步骤
停止调度部分集群节点(暂定一台主机)
给主机添加污点,将该主机节点上的容器驱赶干净;
从集群中删除主机节点
#easzctl del-node <主机IP> easzctl del-node 10.10.14.102 # 删除主机时,同时会执行环境清除,记得重启一次彻底清除网络环境
修改整个 kubeasz 配置
vim /etc/ansible/hosts # 修改成: CONTAINER_RUNTIME="docker"
重新将上述主机节点加入集群
#easzctl add-node <主机IP> easzctl add-node 10.10.14.102 # 直接加入节点会报错,截图如上图所示 # 解决办法: # 登录目标主机执行如下命令 rpm -qa |grep containerd yum remove containerd -y # 然后再执行 add-node 命令
重复上述动作,将其他主机节点切换
注意: 如果同时下线多个节点,可以批量操作即可