集群重启后发现node1节点出现notready状态,问题排查及解决(kubelet与docker的cgroup驱动不同导致)

集群重启后发现node1节点出现notready状态
在这里插入图片描述
排查:
1、查看服务器的物理环境
free -mh/df -h
2、查看内存是否溢出,磁盘空间是否够用,经查均在正常使用范围内;
3、top查看cpu使用状态,在可用范围内;
4、再查master组件scheduer,controller-manager,apiserver等都在正常运行;
5、查看node详细信息
[root@master ~]# kubectl describe nodes node1

Name:               node1
Roles:              <none>
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    disk=ssd
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=node1
                    kubernetes.io/os=linux
Annotations:        flannel.alpha.coreos.com/backend-data: {"VNI":1,"VtepMAC":"76:06:85:be:2e:f1"}
                    flannel.alpha.coreos.com/backend-type: vxlan
                    flannel.alpha.coreos.com/kube-subnet-manager: true
                    flannel.alpha.coreos.com/public-ip: 192.168.213.183
                    kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
                    node.alpha.kubernetes.io/ttl: 0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Sun, 27 Nov 2022 10:18:28 +0800
Taints:             node.kubernetes.io/unreachable:NoExecute
                    node.kubernetes.io/unreachable:NoSchedule
Unschedulable:      false
Lease:
  HolderIdentity:  node1
  AcquireTime:     <unset>
  RenewTime:       Thu, 09 Feb 2023 14:30:01 +0800
Conditions:
  Type                 Status    LastHeartbeatTime                 LastTransitionTime                Reason              Message
  ----                 ------    -----------------                 ------------------                ------              -------
  NetworkUnavailable   False     Wed, 08 Feb 2023 14:38:51 +0800   Wed, 08 Feb 2023 14:38:51 +0800   FlannelIsUp         Flannel is running on this node
  MemoryPressure       Unknown   Thu, 09 Feb 2023 14:26:23 +0800   Mon, 13 Feb 2023 09:15:51 +0800   NodeStatusUnknown   Kubelet stopped posting node status.
  DiskPressure         Unknown   Thu, 09 Feb 2023 14:26:23 +0800   Mon, 13 Feb 2023 09:15:51 +0800   NodeStatusUnknown   Kubelet stopped posting node status.
  PIDPressure          Unknown   Thu, 09 Feb 2023 14:26:23 +0800   Mon, 13 Feb 2023 09:15:51 +0800   NodeStatusUnknown   Kubelet stopped posting node status.
  Ready                Unknown   Thu, 09 Feb 2023 14:26:23 +0800   Mon, 13 Feb 2023 09:15:51 +0800   NodeStatusUnknown   Kubelet stopped posting node status.
Addresses:
  InternalIP:  192.168.213.139
  Hostname:    node1
Capacity:
  cpu:                2
  ephemeral-storage:  17394Mi
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             4002416Ki
  pods:               110
Allocatable:
  cpu:                2
  ephemeral-storage:  16415037823
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             3900016Ki
  pods:               110
System Info:
  Machine ID:                 7f16913a43d84397bd33fc081680947a
  System UUID:                41fc4d56-275d-b583-b585-db862b9a5cc8
  Boot ID:                    e3856941-2c2c-4afc-ae83-572b98bb1c82
  Kernel Version:             5.4.221-1.el7.elrepo.x86_64
  OS Image:                   CentOS Linux 7 (Core)
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  docker://19.3.15
  Kubelet Version:            v1.21.0
  Kube-Proxy Version:         v1.21.0
PodCIDR:                      10.244.1.0/24
PodCIDRs:                     10.244.1.0/24
Non-terminated Pods:          (4 in total)
  Namespace                   Name                      CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age
  ---------                   ----                      ------------  ----------  ---------------  -------------  ---
  default                     nginx-6799fc88d8-j2f5v    0 (0%)        0 (0%)      0 (0%)           0 (0%)         5d20h
  default                     nginx-6799fc88d8-xstkz    0 (0%)        0 (0%)      0 (0%)           0 (0%)         5d20h
  kube-system                 kube-flannel-ds-kvx26     100m (5%)     100m (5%)   50Mi (1%)        50Mi (1%)      79d
  kube-system                 kube-proxy-gj29x          0 (0%)        0 (0%)      0 (0%)           0 (0%)         79d
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests   Limits
  --------           --------   ------
  cpu                100m (5%)  100m (5%)
  memory             50Mi (1%)  50Mi (1%)
  ephemeral-storage  0 (0%)     0 (0%)
  hugepages-1Gi      0 (0%)     0 (0%)
  hugepages-2Mi      0 (0%)     0 (0%)
Events:              <none>

由此一直kubelet已经不再工作,无法将node节点的状态信息提供给master。
7、登录node所在机器
查看kubelet状态
在这里插入图片描述
虽显示启动状态,但下面的事项说明中表名他其实是启动失败了的。
查看日志:[root@node1 ~]# journalctl -u kubelet
在这里插入图片描述
发现报错:

"Failed to run kubelet" err="failed to run Kubelet: misconfiguration: kubelet cgroup driver: \"systemd\" is different from docker cgroup driver: \"cgroupfs\""

由此可知,kubernets所使用的驱动与docker所使用驱动不同,导致kubelet启动失败。
这里我们将docker驱动修改与kubelet驱动一致即可解决。
修改配置文件:
[root@node1 ~]# vim /etc/docker/daemon.json
添加如下配置即可
在这里插入图片描述
最后重启docker,kubelet即可
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart docker
[root@node1 ~]# systemctl restart kubelet
回到master节点进行查验
在这里插入图片描述
node已为ready状态。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当遇到k8snode节点notready问题时,可以按照以下步骤进行排查解决: 1. 检查节点状态:使用命令 `kubectl get nodes` 检查节点状态,确保节点处于 `Ready` 状态。如果节点状态为 `NotReady`,则表示存在问题。 2. 检查节点事件:使用命令 `kubectl describe node <node-name>` 查看节点的事件,以了解是否有任何故障或异常情况。 3. 检查kubelet日志:使用命令 `journalctl -u kubelet -n 100` 查看kubelet的日志,以查找任何与节点notready相关的错误或警告信息。 4. 检查容器运行时日志:如果使用的是Docker作为容器运行时,可以使用命令 `journalctl -u docker -n 100` 查看Docker的日志。如果使用的是其他容器运行时,可以查找相应的日志文件。 5. 检查网络配置:确保节点能够与其他节点和控制平面正常通信。检查网络配置是否正确,并确保防火墙规则没有阻止必要的流量。 6. 检查资源使用情况:检查节点的资源使用情况,例如CPU、内存、存储等。确保节点上的资源充足以正常运行Pod。 7. 检查配置文件:检查节点的配置文件,例如kubelet配置文件、节点标签等。确保配置文件没有错误,并且节点的配置与集群的要求一致。 8. 重启kubelet服务:尝试重启kubelet服务,可以使用命令 `sudo systemctl restart kubelet`。重启后,观察节点状态是否变为Ready。 9. 联系硬件供应商:如果怀疑节点故障,例如硬件故障或操作系统崩溃,可以联系硬件供应商寻求支持。 10. 检查其他组件:如果以上步骤都没有解决问题,可以检查其他与节点相关的组件,例如网络插件、存储插件等。 在排查问题时,可以结合使用多个命令和工具,以获取更全面的信息和诊断结果。根据具体的情况,可能需要进一步查找相关文档或寻求社区的帮助来解决问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值