注意:该kubeshpere使用用kk 安装,且还保留了原始文件。
问题表象1:进入到所有的worker 节点的pod都会报错
*** 26s (x19 over 21m) default-scheduler 0/6 nodes are available: 3 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn’t tolerate, 3 node(s) had taint {node.kubernetes.io/unreachable: }, that the pod didn’t tolerate***
问题表象2:三个worker节点都有污点,且禁止调度
看到表象2的时候感觉是内部通讯问题,就到后台去用命令查看
kubectl get nodes
几个worker节点状态都是 NotReady
研究了很久
什么 apiserver ,kubelet 等等都看了,
老是有些莫名其妙的报错
报错1:
3月 03 10:12:55 worker0 kubelet[1201]: E0303 10:12:55.755939 1201 kubelet.go:2456] "Error getting node" err="node \"worker0\" not found"
报错2:v1.RuntimeClass: failed to list *v1.RuntimeClass: Get "https://127.0.0.1:6443/apis/node.k8s.io/v1/runtimeclasses?limit=500&resourceVersion=0": dial tcp 127.0.0.1:6443: connect: connection refused
apiserver报错:metrics-server Error from server (InternalError): Internal error occurred: Authorization error (user=kube-apiserver-kubelet-client, verb=get, resource=nodes, subresource=proxy)
其实前面连个报错晚上多多少少都有些资料,但是可我这个情况不同。
最后处理方法:
整个集群主要是worker节点有问题
我就把其中一个worker节点从集群里面去掉
步骤:
1.删除节点
在删除节点之前,确保该节点上的所有 Pod 都已迁移或删除。
kubectl get nodes
确保节点没有正在运行的关键服务或 Pod。如果有,可以先手动删除或迁移它们。
然后删除节点:
kubectl delete node <node-name>
这将从 Kubernetes 集群中删除该节点,但不会删除该节点上的 Kubelet 服务和相关的配置。
2.在节点上清理旧的 Kubernetes 配置
在节点上执行以下步骤,以确保清理所有旧的 Kubernetes 配置并准备好重新加入集群。
a. 停止 Kubelet 服务
sudo systemctl stop kubelet
b. 清理 Kubelet 配置和证书
在节点上删除 Kubelet 的配置和证书(确保备份重要数据之前的配置)。
sudo rm -rf /etc/kubernetes/
sudo rm -rf /var/lib/kubelet/
sudo rm -rf /etc/cni/
c. 清理 Docker(如果使用 Docker)
如果使用 Docker 作为容器运行时,可以清除 Docker 的相关配置和镜像。
sudo docker system prune -a
3.添加节点
如果之前kk安装的sample-config.yaml 文件和安装包还在,可以直接执行
./kk add nodes -f sample.yaml
配置:
···
spec:
hosts:
{name: master1, address: 192.168.0.3, internalAddress: 192.168.0.3, user: root, password: Qcloud@123}
{name: node1, address: 192.168.0.4, internalAddress: 192.168.0.4, user: root, password: Qcloud@123}
{name: node2, address: 192.168.0.5, internalAddress: 192.168.0.5, user: root, password: Qcloud@123}
roleGroups:
etcd:
master1
master:
master1
worker:
node1
node2
···
安装完成后,您将能够在 KubeSphere 的控制台上查看新节点及其信息。在集群管理页面,选择左侧菜单节点管理下的集群节点,或者执行命令 kubectl get node 以检查更改。

