K8S-节点notReady如何处理?

使用vmWare虚拟机部署K8S集群,将虚拟机挂起重启后其中一个节点显示notReady状态,为解决该问题,进行了如下处理。 

先在master节点确定问题

1.查看node节点的详细信息

kubectl describe node node01

没有找到问题。

2.确定不存在网络问题

在node节点,执行下述命令

ping master

3.查看kubelet状态

在node节点,执行下述命令

systemctl status kubelet

有报错信息,但不全。

执行下述命令,查看更详细日志信息

journalctl -u kubelet -f

4.结论

 在第3步打开的日志中看出,该node节点在尝试删除master节点上的管理pod,比如:

3月 30 09:38:06 master kubelet[44742]: E0330 09:38:06.728941   44742 mirror_client.go:138] "Failed deleting a mirror pod" err="pods \"etcd-master\" is forbidden: node \"node01\" can only delete pods with spec.nodeName set to itself" pod="kube-system/etcd-master"

决定将该node重启。

方案一:重启物理机。

请注意,在执行重启操作之前,请确保节点上的所有数据都已经备份或保存。

1.将该node上的Pod转移出去,这个v1.23版本以上移除了,在v1.22版本也没有效果。

kubectl drain <node-name>

查看pod情况准备删除pod。

kubectl get node -o wide

确认该节点没有部署Pod,应该是k8s调度处理了。

2.重启节点

sudo reboot

3.加载网络桥接组件

modprobe br_netfilter

4.确认node情况

kubectl get nodes

5.恢复Pod调度

kubectl uncordon <node-name>

6.执行说明

        跳过第3步,在master节点查看node节点的状态依旧是notReady,未执行后续步骤。

方案二:将node上的kubelet重置

1.关闭kubelet进程

systemctl stop kubelet

2.确认进程关闭

ps aux | grep kubelet

3.通过kubeadmin重置

kubeadmin reset

4.获取join命令

在master节点执行

kubeadm token create --print-join-command

 5.执行join命令

在node节点执行,出现如下错误:

error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist

执行下述命令加载网络桥接组件:

modprobe br_netfilter

确认,执行下述命令有返回值表明成功。

lsmod | grep br_netfilter

6.再次执行join命令

出现如下错误:

error execution phase kubelet-start: a Node with name "<node-name>" and status "Ready" already exists in the cluster. You must delete the existing Node or change the name of this new joining Node

查看hostname,执行下述命令:

hostname

确认hostname错误执行下述命令变更,执行命令时注意变更node-name

hostnamectl set-hostname <node-name>
> /etc/hostname && echo '<node-name>' > /etc/hostname

7.再次执行join。

成功。

8.在master节点确认。

kubectl get nodes

9.说明

  • 因为我的node节点时从master节点克隆出来的,只通过hostnamectl修改了临时值,没有修改静态值。
  • 网络桥接代理没有放到重启命令中,需要手动重启。

### 回答1: k8s master节点notready表示kubernetes的主节点无法正常工作。这可能是由于网络问题、硬件故障或其他原因导致的。需要检查k8s master节点的日志和配置文件,以确定问题的根本原因,并采取相应的措施来解决问题。可能需要重启k8s master节点或重新配置kubernetes集群。 ### 回答2: k8s是一种容器编排工具,它涉及到k8s master节点的概念。如果k8s master节点notready,可能会造成k8s的不稳定性,影响应用程序的运行,因此需要及时处理。 首先,需要检查k8s master节点的状态,可以通过执行命令“kubectl get nodes”来检查所有节点的状态。如果k8s master节点的状态是notready,那么需要对其进行详细的排查。 1. 查看kubelet是否正常启动。 kubelet是k8s主机上的一个重要组件,负责管理容器的状态。如果kubelet没有正常启动,会导致k8s master节点notready。可以通过执行“systemctl status kubelet”命令来检查kubelet的状态,如果kubelet没有正常启动,需要进行排查和修复。 2. 检查kube-apiserver是否正常运行。 kube-apiserver是k8s集群中最重要的组件之一,也是k8s的核心组件之一。如果kube-apiserver没有正常运行,会导致k8s master节点notready。可以通过执行命令“systemctl status kube-apiserver”来检查kube-apiserver的状态,如果kube-apiserver没有正常启动,需要进行排查和修复。 3. 检查etcd是否正常运行。 etcd是k8s集群中的键值存储组件,它存储了k8s集群各种资源的状态信息。如果etcd没有正常运行,会导致k8s master节点notready。可以通过执行命令“systemctl status etcd”来检查etcd的状态,如果etcd没有正常启动,需要进行排查和修复。 4. 检查网络是否正常。 k8s集群中的网络也是一个非常重要的组件,如果网络没有正常运行,会导致k8s master节点notready。可以通过执行命令“kubectl get pods --all-namespaces”来检查所有pod的状态,如果存在pod处于非运行状态,需要排查网络问题。 在排查k8s master节点notready时,需要耐心,认真的分析问题的根源,找到并解决问题,确保k8s集群的稳定性和可靠性。 ### 回答3: KubernetesK8s)是一个流行的容器编排系统,通常由多个工作节点和一个控制管理节点组成。这个控制节点通常称为 K8s节点,它负责执行集群管理和协调应用程序的启动和停止。 然而,K8s节点经常遭受各种问题,例如节点标记为 notready,这意味着该节点无法作为活动节点运行。当 K8s节点变得 notready 时,整个集群的运行将受到影响,因此需要采取立即措施解决该问题。 出现这种情况可能是由于以下原因: 1.网络问题:如果 K8s节点无法与其他节点通信,则可能会发生 notready 的情况。这可能是由于网络隔离或配置错误引起的。 2.资源不足:主节点上的硬件资源(例如 CPU 或内存)不足,因此无法执行管理操作。 3.运行时问题:主节点上的K8s 控制器和其他进程可能会发生错误导致节点标记为非活动状态。 如果您遇到 K8s节点notready 问题,可以采取以下几步来解决: 1.确保主节点与其他节点之间的网络连接正常,并检查防火墙设置。 2.检查 K8s节点的日志文件以查找任何错误或异常,并尝试重新启动 K8s 控制器和其他进程。 3.通过添加更多的硬件资源,例如 CPU、内存或存储空间,来解决资源不足的问题。 总之,要解决这个问题,需要仔细分析问题的根源,以便更好地确定出解决方案。寻求帮助和进行适当的故障排除,可以快速恢复 K8s节点 notready 的状态并重新开始应用管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田秋浩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值