因为网络配错了,中间尝试调整了多次calico结果总是有问题,索性重装。重装过程中isulad和之前的docker或是containerd有点不同,把过程记录下来,备忘。

1. kubectl delete node ** 选择一个master节点将其他节点全部删除

2. sudo kubeadm reset -f  清空当前节点

sudo rm -rf /etc/kubernetes/pki /var/lib/etcd /etc/cni/net.d
sudo mkdir -p /etc/cni/net.d

3. 这里就和之前卸载docker不同了,虽然执行了上两步,但节点上的容器不会自动释放,需要手动清空,不然后续安装会失败。这里尤其是使用sudo crictl ps -a 查看到的容器,我没找到更好的办法只能手动一条条删除,不然就可以做个脚本批处理执行了(如果其他高手知道如何批量删除可共享以下)。

sudo crictl ps -a
sudo crictl stop ****  //通过容器的id手动一条条停止
sudo crictl rm --all

不知道为什么,使用crictl删除完后,再使用 sudo isula ps -a 还会存在,还需要再删除一边,不过这里就可以使用脚本删除了。

sudo isula ps -a | awk '{print $1}' | xargs -I {} sudo isula stop {}
sudo isula ps -a | awk '{print $1}' | xargs -I {} sudo isula rm {}

// 重启服务

sudo systemctl restart isulad
sudo systemctl restart kubelet

4. 现在再执行初始化一般就不会报错了

kubeadm init --config kubeadm-config.yaml --upload-certs --skip-phases=preflight  //这里的配置文件前面的博客中有,在此不做赘述。

5. 安装calico

6. 在其他节点执行2,3 操作,取保所有残留容器全部清空,再来执行join操作才不容易报错。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐