废除集群
kubeadm reset
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
ipvsadm -C
rm -rvf $HOME/.kube
rm -rvf ~/.kube/
rm -rvf /etc/kubernetes/
rm -rvf /etc/systemd/system/kubelet.service.d
rm -rvf /etc/systemd/system/kubelet.service
rm -rvf /usr/local/bin/kube*
rm -rvf /etc/cni
rm -rvf /opt/cni
rm -rvf /var/lib/etcd
rm -rvf /var/etcd
rm -rf /etc/ssl/etcd/ssl
rm -rf /etc/etcd.env
1、修改每台物理的IP、子网掩码、网关信息
vi /etc/sysconfig/network-scripts/
ifcfg-enp24s0f0
重建集群
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.1.0.0/16 --apiserver-advertise-address=192.168.51.97 --kubernetes-version=v1.21.0 --ignore-preflight-errors='Swap' --image-repository registry.aliyuncs.com/google_containers
查看节点污点
kubectl describe nodes node1 | grep Taints
- Taints: node.kubernetes.io/not-ready:NoSchedule 使节点可以调度将
master 标记为可调度即可 NoSchedule: 一定不能被调度 PreferNoSchedule: 尽量不要调度
NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod
kubectl taint nodes --all node.kubernetes.io/not-ready-
node/node1 untainted
---------略------
问题1:
Warning NetworkNotReady 58s (x152 over 6m) kubelet network is not ready: container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
解决办法(有风险)
[root@node1 bin]# vi /var/lib/kubelet/kubeadm-flags.env
删除其中的 --network-plugin=cni
systemctl restart kubelet
解决办法2 正解:
安装calico网络插件
修改calico.yaml文件中相关参数
cd /home/algservice/k8s/calico #注意替换成你的目录
vi calico.yaml
#修改如下两个字段:
spec.template.spec.containers.env.CALICO_IPV4POOL_CIDR
#其值设置为初始化主master节点时设置的pod-network-cidr的值,即:10.244.0.0/16
spec.template.spec.containers.env.IP_AUTODETECTION_METHOD
#其值设置为host机网卡信息,如interface=enp12s0,其中“enp12s0”是网卡名,其中网卡名的查看方式是:执行ifconfig
#修改完成后,字段信息如下:
- name: CALICO_IPV4POOL_CIDR
value: “10.244.0.0/16” - name: IP_AUTODETECTION_METHOD
value: “interface=enp12s0”
启动Calico
kubectl create -f calico.yaml
使用kubekey安装
1、在kubekey目录下执行删除集群
./kk delete cluster
2、每个nodes上完全卸载k8s
kubeadm reset
rm -rvf $HOME/.kube
rm -rvf ~/.kube/
rm -rvf /etc/kubernetes/
rm -rvf /etc/systemd/system/kubelet.service.d
rm -rvf /etc/systemd/system/kubelet.service
rm -rvf /usr/bin/kube*
rm -rvf /etc/cni
rm -rvf /opt/cni
rm -rvf /var/lib/etcd
rm -rvf /var/etcd
3、删除主节点上所有的etcd信息
rm -rf /etc/etcd.env
cd /etc/ssl/etcd/ssl/
rm -rf *
cd /usr/local/bin/
ls
rm -rf *
4、修改每个node的/etc/hosts信息
5、删除kubekey目录下所有含节点信息文件及文件夹(log node1 node2 pki),执行重新部署集群。