重启 (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

报错

[ERROR FileAvailable–etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
[ERROR Port-10250]: Port 10250 is in use
[ERROR FileAvailable–etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists

	解决:
	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

Logo

开源、云原生的融合云平台

更多推荐