K8s踩坑日记

119 阅读1分钟

场景:K8s v1.17 各个节点可以不在同一网段,但需要ping通

环境卸载

主节点执行

kubectl drain node-name1 --delete-local-data --force --ignore-daemonsets
kubectl drain node-name2 --delete-local-data --force --ignore-daemonsets
kubectl delete node node-name1
kubectl delete node node-name2
...

所有节点执行

#停止容器
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
#删除K8s相关配置
kubeadm reset
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd

#删除网络插件flannel的配置,以免后面安装其他网络插件出现冲突
ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/
rm -f /etc/cni/net.d/*
#若没有卸载集群需要重启kubelet

K8s集群搭建

可以参考B站黑马的K8s教程

构成集群的节点中若是有不在同一网段的节点推荐使用calico网络插件

遇到的坑

  1. 在搭建环境的过程中,kubeadm join的阶段,若是使用docker,且设置了容器代理地址,可能会导致join master失败。