【k8s集群故障】unable to load bootstrap kubeconfig: stat /etc/kubernetes/bootstrap-kubelet.conf

记录一次k8s集群更新证书,node节点NotReady问题

一开始查看调度到node-1节点的pod都terminating 状态
到节点node-1

kubectl get pod -A
error: You must be logged in to the server (Unauthorize)

将master节点的/etc/kubernetes/admin.conf拷贝到node-1

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
再source  ~/.bash_profile

再查看节点污点

 kubectl describe node node-1|grep Taint

发现节点 node.kubernetes.io/unreachable:NoExecute
尝试删除污点

kubectl taint node k8snode2 node.kubernetes.io/unreachable-

结果污点变成node.kubernetes.io/unreachable:NoSchedule

后来查资料发现

node.kubernetes.io/not-ready:节点尚未准备好。这对应于NodeConditionReady为False。

node.kubernetes.io/unreachable:无法从节点控制器访问节点。这对应于NodeConditionReady为Unknown。

node.kubernetes.io/out-of-disk:节点磁盘不足。

node.kubernetes.io/memory-pressure:节点有内存压力。

node.kubernetes.io/disk-pressure:节点有磁盘压力。

node.kubernetes.io/network-unavailable:节点的网络不可用。

node.kubernetes.io/unschedulable:节点不可调度。

node.cloudprovider.kubernetes.io/uninitialized:当kubelet从外部云服务提供程序启动时,在节点上设置此污点以将其标记为不可用。来自cloud-controller-manager的控制器初始化此节点后,kubelet删除此污点。

如果要逐出节点,则节点控制器或kubelet会添加相关的污点NoExecute。如果故障情况恢复正常,则kubelet或节点控制器可以删除相关的污点。具体文档地址,如下所示:https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/

大概意思是说,之所以出现此污点,是k8s内部认为该节点尚不能工作,所以添加了此污点,防止Pod调度到此节点,看了半天,原来节点底层出现故障了,首先查看下kubelet状态,状态不正常,如下所示:

systemctl status kubelet                 
● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: inactive (dead)
     Docs: https://kubernetes.io/docs/

通过

journalctl -xefu kubelet

查看日志

9月 11 17:06:14 node-1 systemd[1]: kubelet.service holdoff time over, scheduling restart.
9月 11 17:06:14 node-1 systemd[1]: Stopped kubelet: The Kubernetes Node Agent.
-- Subject: Unit kubelet.service has finished shutting down
-- Defined-By: systemd
-- Support: h
[root@master fosafer]# systemctl status kubeletkubelet.service - Kubernetes Kubelet Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled) Active: activating (auto-restart) (Result: exit-code) since 二 2025-03-18 17:44:21 CST; 3s ago Docs: https://github.com/kubernetes/kubernetes Process: 11843 ExecStart=/usr/local/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/cfg/kubelet-bootstrap.kubeconfig --cert-dir=/etc/kubernetes/ssl --kubeconfig=/etc/kubernetes/cfg/kubelet.config --config=/etc/kubernetes/cfg/kubelet.json --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.2 --alsologtostderr=true --logtostderr=false --log-dir=/var/log/kubernetes --v=2 (code=exited, status=203/EXEC) Main PID: 11843 (code=exited, status=203/EXEC) Tasks: 0 Memory: 0B CGroup: /system.slice/kubelet.service 3月 18 17:44:21 master systemd[1]: Unit kubelet.service entered failed state. 3月 18 17:44:21 master systemd[1]: kubelet.service failed. [root@master fosafer]# systemctl restart kubelet [root@master fosafer]# systemctl status kubeletkubelet.service - Kubernetes Kubelet Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled) Active: activating (auto-restart) (Result: exit-code) since 二 2025-03-18 17:44:46 CST; 1s ago Docs: https://github.com/kubernetes/kubernetes Process: 11914 ExecStart=/usr/local/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/cfg/kubelet-bootstrap.kubeconfig --cert-dir=/etc/kubernetes/ssl --kubeconfig=/etc/kubernetes/cfg/kubelet.config --config=/etc/kubernetes/cfg/kubelet.json --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.2 --alsologtostderr=true --logtostderr=false --log-dir=/var/log/kubernetes --v=2 (code=exited, status=203/EXEC) Main PID: 11914 (code=exited, status=203/EXEC) 3月 18 17:44:46 master systemd[1]: Unit kubelet.service entered failed state. 3月 18 17:44:46 master systemd[1]: kubelet.service f
03-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值