Kubernetes nodes are not ready原因查看

本文介绍了如何处理Kubernetes集群中节点未准备就绪的情况。在接收到Prometheus报警,提示4%的节点状态异常后,通过检查节点状态以定位问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今早收到了Prometheus的报警,4% of Kubernetes nodes are not ready。

直接查看node情况即可知道原因。

banfushen@pro:~/helm-chart/prometheus-netease/templates$ kubectl describe nodes ip-xx-x-xxx-xxx.ap-northeast-1.compute.internal
Name:               ip-xx-x-xxx-xxx.ap-northeast-1.compute.internal
Roles:              node
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/instance-type=c5.xlarge
                    beta.kubernetes.io/os=linux
                    failure-domain.beta.kubernetes.io/region=ap-northeast-1
                    failure-domain.beta.kubernetes.io/zone=ap-northeast-1c
                    kubernetes.io/hostname=ip-xx-x-xxx-xxx.ap-northeast-1.compute.inte
### Kubernetes 与 Flannel 集成概述 Flannel 是一种流行的网络插件,用于实现 Kubernetes 中 Pod 的跨主机通信。通过配置 `subnet.env` 文件[^1],管理员可以定义整个集群的 IP 地址范围以及单个节点上的子网分配策略。例如,在给定的例子中: - 整体网络被设置为 `FLANNEL_NETWORK=10.244.0.0/16`。 - 单个节点上使用的子网是 `FLANNEL_SUBNET=10.244.1.1/24`。 这些参数确保了每个节点都有独立的地址空间来运行其容器实例,从而避免冲突并支持多播功能。 对于实际部署而言,应用官方提供的 YAML 文件是一种简便方法来初始化必要的资源对象以启用此功能[^2]: ```bash kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml ``` 上述命令会创建服务账户、ClusterRoleBinding 及 DaemonSet 等组件,它们共同协作完成 CNI 接口的具体实施工作。 当遇到诸如 Node 节点进入 NotReady 状态等问题时,则可能涉及更深层次的原因分析过程[^3]。通常情况下移除 Service Selector 字段可缓解部分异常状况的发生几率;然而更重要的是持续监控日志记录以便定位根本原因所在之处。 ### 解决方案代码示例 以下是针对特定场景下排查步骤的一个简单脚本例子: ```python import subprocess def check_node_status(): result = subprocess.run([&#39;kubectl&#39;, &#39;get&#39;, &#39;nodes&#39;], stdout=subprocess.PIPE) output = result.stdout.decode(&#39;utf-8&#39;) if "NotReady" in output: print("Detected some nodes are not ready.") # Further investigation commands can be added here. describe_result = subprocess.run([&#39;kubectl&#39;, &#39;describe&#39;, &#39;node/<nodename>&#39;], stdout=subprocess.PIPE) print(describe_result.stdout.decode(&#39;utf-8&#39;)) check_node_status() ``` 该 Python 函数利用 kubectl 工具获取当前所有节点的状态信息,并检测是否存在未就绪的情况。如果发现问题存在,则进一步调用描述命令收集更多细节供后续审查之用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值