场景: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网络插件
遇到的坑
- 在搭建环境的过程中,kubeadm join的阶段,若是使用docker,且设置了容器代理地址,可能会导致join master失败。