重启 (work 和master 都需要执行)
1、kubeadm reset
master 节点reset之后,需要手动删除 $HOME/.kube 这个目录,这个目录是旧集群的配置信息。
2、执行init
kubeadm init --apiserver-advertise-address=10.50.10.187 --control-plane-endpoint=cluster-endpoint --image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images --kubernetes-version v1.20.9 --service-cidr=10.96.0.0/16 --pod-network-cidr=192.168.0.0/16
此步骤报错基本都是reset不彻底,端口占用等问题. 在reset完之后需要先将kubelet 启动起来.
3、配置文件
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
worker 节点上加入
4、将node节点加入集群
kubeadm join cluster-endpoint:6443 --token lgmx3u.1kurxaj26csfsddk --discovery-token-ca-cert-hash sha256:3a263d320bbe1ce863e851812cc663885be3adf6614e72fa4500a3809121bdae
报错
解决: 1、rm -f /etc/kubernetes/kubelet.conf /etc/kubernetes/pki/ca.crt 2、systemctl restart kubelet 重启kubelet报错排查(刚开始忘记在worker节点reset了,如果在worker节点上先reset就不会有后面这些问题了) journalctl -xefu kubelet # 可以查看kubelet日志 ERROR: failed to run Kubelet: misconfiguration: kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs" 发现kubelet cgroup driver与docker cgroup driver 不一致 s]# docker info|grep "Cgroup Driver" Cgroup Driver: cgroupfs
docker: Error response from daemon: OCI runtime create failed: systemd cgroup flag passed, but systemd support for managing cgroups is not available: unknown.
解决: 修改docker 的配置文件和k8s一致 kubelet cgroup driver配置: /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf 修改docker,只需在/etc/docker/daemon.json中,添加"exec-opts": ["native.cgroupdriver=systemd"]即可。 重启docker cgreoup驱动变成了systemd
重新执行kubeadm join如下报错:
[kubelet-check] Initial timeout of 40s passed.
timed out waiting for the condition
error uploading crisocket
到这里才知道原来worker节点也需要reset,因为master 执行了kubelet reset集群的名字变了,所以join时找不到会超时。
worker 节点上执行kubelet reset worker节点顺利加入
参考:
1、https://www.cnblogs.com/hellxz/p/kubelet-cgroup-driver-different-from-docker.html