GKE Autopilot 集群:HPA 显示“无法调度的 pod”并且不会扩展集群资源

问题描述 投票:0回答:1

我有一个处于 Autopilot 模式的 Google Kubernetes Engine (GKE) 集群。但是,当 Horizontal Pod Autoscaler (HPA) 需要扩展时,我会收到一条消息,指示“无法调度 pod”,并且集群不会自动增加其资源。

任何有关如何解决此问题的见解或建议将不胜感激。

  • 在组织级别禁用策略compute.disableSerialPortLogging:导航到组织策略 -> 禁用虚拟机串行端口日志记录到 Stackdriver -> 覆盖父级策略并创建“不强制执行”规则
  • 在项目元数据中启用串行端口日志记录。

尽管进行了这些更改,问题仍然存在。我不确定我是否正确实施了这些步骤或者是否需要其他配置。

kubernetes google-kubernetes-engine horizontal-pod-autoscaling
1个回答
0
投票

尝试以下故障排除步骤来解决您的问题:

  1. 资源不足:确保所需资源有充足的资源配额。您可以在 Google Cloud 控制台中查看。

  2. 确保每个节点的 Pod 是否没有设置限制,如果超过此限制,可能会导致 Pod 无法调度。检查可能阻止 HPA 扩展资源的任何资源配额或限制。

  3. 确保不存在可能阻止 pod 在节点上调度的关联性或反关联性规则。检查可能阻止 pod 在节点上调度的任何节点或 pod 关联性或反关联性规则。检查 pod 的 YAML 的 spec.affinity 部分,看看是否有任何节点亲和性规则过于严格。

  4. 检查是否有任何可能阻止 Pod 与其他 Pod 通信的网络策略或安全组。

  5. 确保 Autopilot 集群配置正确并选择允许的扩展。

  6. 检查是否有可用节点进行扩容,如果没有可用节点,HPA无法扩容,使用此命令检查节点可用性:‘kubectl getnodes’。

  7. 污点和容忍是管理资源分配和调度的强大工具。 PodToleratesNodeTaints 表示 Pod 无法调度到任何节点,因为当前没有节点能够容忍其 node taint。

另请参阅关于 Pod unschedulable 的 GCP 官方故障排除文档,并参考 DevCodeF1 文章,这可能有助于解决您的问题。

如果上述故障排除步骤未能解决您的问题,请使用以下命令从 GKE Autopilot 环境访问详细日志:kubectl describe pod kubectl 日志。

© www.soinside.com 2019 - 2024. All rights reserved.