k8s+isulad 重装
因为网络配错了,中间尝试调整了多次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操作才不容易报错。