排查节点未就绪故障,后跟恢复
本文提供了一个指南,用于排查和解决 Azure Kubernetes 服务 (AKS) 群集中的节点未就绪“问题。 当节点进入“NotReady”状态时,它可能会中断应用程序的功能,并导致它停止响应。 通常,节点会在短时间内自动恢复。 但是,为了防止反复出现问题并保持稳定的环境,必须了解能够实施有效解决的根本原因。
原因
有几个方案可能导致出现“NotReady”状态:
API 服务器的不可用。 这会导致就绪情况探测失败。 这可以防止 Pod 附加到服务,以便不再将流量转发到 Pod 实例。
虚拟机(VM)主机故障。 若要确定是否发生 VM 主机错误,请检查以下信息源:
解决方案
若要解决此问题,请按照下列步骤操作:
- 运行
kubectl describe node <node-name>
以查看有关节点状态的详细信息。 查找可能指示问题的根本原因的任何错误消息或警告。 - 通过运行以下命令
kubectl get apiservices
检查 API 服务器的可用性。 确保在部署 YAML 文件中正确配置就绪情况探测。 - 验证节点的网络配置以确保没有连接问题。
- 检查节点的资源使用情况,例如 CPU、内存和磁盘,以确定潜在的约束。 有关详细信息,请参阅 使用容器见解监视 Kubernetes 群集性能
有关进一步步骤,请参阅 节点未就绪故障的基本故障排除。
防护
若要防止将来出现此问题,请执行下列作之一或多项:
- 确保服务层级已完全付费。
- 减少对 API 服务器的次数
watch
和get
请求数。