我创建了一个单节点 Kubernetes 集群,主节点的主机名已更改,这导致该节点处于未就绪状态。集群的 etcd 条目显示相同的内容...
我创建了一个单节点 Kubernetes 集群,主节点的主机名已更改,这导致该节点处于未就绪状态。集群的 etcd 条目显示相同的内容,这是我使用以下命令检查 kubelet 状态时得到的结果 systemctl status kubelet
:
kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/kubelet.service.d
10-kubeadm.conf
Active: active (running) since Mon 2024-08-12 16:26:26 IST; 11min ago
Docs: https://kubernetes.io/docs/home/
Main PID: 500476 (kubelet)
Tasks: 51 (limit: 154427)
Memory: 42.2M
CPU: 25.482s
CGroup: /system.slice/kubelet.service
500476 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --pod-in>
Aug 12 16:38:06 AIRAITD0258 kubelet[500476]: I0812 16:38:06.007224 500476 kubelet_node_status.go:70] "Attempting to register node" node="airaitd0258"
Aug 12 16:38:06 AIRAITD0258 kubelet[500476]: E0812 16:38:06.010747 500476 kubelet_node_status.go:92] "Unable to register node with API server" err="nodes \"airaitd0258\" is forbidden: node \"master-node\" is not allowed to modify node \"airaitd0258\"" node="ai>
Aug 12 16:38:06 AIRAITD0258 kubelet[500476]: E0812 16:38:06.836547 500476 eviction_manager.go:258] "Eviction manager: failed to get summary stats" err="failed to get node info: node \"airaitd0258\" not found"
Aug 12 16:38:12 AIRAITD0258 kubelet[500476]: E0812 16:38:12.572630 500476 controller.go:146] "Failed to ensure lease exists, will retry" err="leases.coordination.k8s.io \"airaitd0258\" is forbidden: User \"system:node:master-node\" cannot get resource \"leases>
有什么方法可以恢复这个节点吗?
我遇到的唯一解决方案是这个,但它描述的是工作节点而不是主节点的过程: 如何更改 kubernetes 节点的名称
重置然后重新初始化集群是最简单、最安全的方法。
同样,如果工作节点的主机名发生变化,则需要 kubeadm reset。您可以使用命令重置 sudo kubeadm reset
。重置后,运行以下命令重新初始化集群: sudo kubeadm
init。
可以通过停止集群并手动编辑来执行此操作 etcd
。续订证书和所有其他更新。请参阅 操作 Kubernetes 的 etcd 集群 .
作为备份/迁移解决方案的替代方法,您可以使用 Velero 工具安全地备份和恢复、执行灾难恢复以及迁移 Kubernetes 集群资源和持久卷。
我还建议将集群版本至少更新到 1.19。有关更多详细信息,请关注 升级 kubeadm 集群 。