You need to enable JavaScript to run this app.
导航
Pod 处于 Pending 状态,未被成功调度
最近更新时间:2023.08.11 14:33:23首次发布时间:2023.08.11 14:33:23
我的收藏
有用
有用
无用
无用

问题描述

Pod(容器组)长时间处于 Pending 状态,没有被调度。
alt

原因分析

  1. 查看 Pod 事件信息,初步确定 Pod Pending 的原因。详细操作,请参见 查看容器组信息
  2. 根据不同的事件信息,进一步确定 Pod Pending 的原因并处理问题。
    事件消息示例调度失败原因解决方法

    no nodes available to schedule pods

    集群没有可用的节点导致 Pod 无法调度到节点上。

    集群无可用节点

    0/3 nodes are available: 3 Insufficient cpu.
    0/2 nodes are available: 2 Insufficient memory.

    节点资源(CPU、内存)不足,无法调度 Pod 到节点上。

    节点资源不足

    0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.节点上存在 Pod 无法容忍的污点。节点上存在 Pod 无法忍受的污点
    0/2 nodes are available: 1 node(s) didn't match node selector, 1 node(s) didn't match pod affinity rules, 1 node(s) didn't match pod affinity/anti-affinity.Pod 所属工作负载上配置的节点亲和调度、实例亲和调度、实例反亲和调度等,与已有的节点不匹配。节点与 Pod 的亲和性不匹配

解决方法

集群无可用节点

  1. 登录 容器服务控制台,在左侧导航栏中单击 集群
  2. 单击目标集群名称,在集群管理页面的左侧导航栏中单击 节点
  3. 在 节点 页面查看是否存在可用(状态为 运行中)的节点。
    • 若无节点:为集群新增节点,或添加已有的 ECS 实例到集群中。详细操作,请参见 新增节点添加已有节点
    • 若有节点,但状态不是 运行中:排查节点异常状态并修复后,确保节点可用、资源充足,即可调度 Pod 到节点上。节点异常处理方法,请参见 节点与节点池 FAQ

节点资源不足

  1. 登录 容器服务控制台,在左侧导航栏中单击 集群
  2. 单击目标集群名称,在集群管理页面的左侧导航栏中单击 节点
  3. 在 节点 页面查看可用(状态为 运行中)节点的 CPU、内存资源使用情况。
    alt
    若节点资源不充足时,按如下方法处理:
    • 节点数量过少,需要为集群新增节点,保证集群节点资源满足 Pod 的调度需求。详细操作,请参见 新增节点
    • 单个节点的规格过小,需要增加大规格的节点,保证 CPU、内存资源充足。详细操作,请参见 新增节点创建节点池
    • 删除现有节点上不必要的 Pod,释放节点资源。详细操作,请参见 删除容器组
    • 基于实际业务情况,调整 Pod 内容器的资源配额(Request/Limit),使其能够调度到节点上。详细操作,请参见 工作负载
      alt

节点上存在 Pod 无法容忍的污点

  1. 登录 容器服务控制台,在左侧导航栏中单击 集群
  2. 单击目标集群名称,在集群管理页面的左侧导航栏中单击 节点
  3. 在 节点 页面单击节点名称,进入 节点详情页
  4. 节点详情页 查看节点的污点信息,并结合实际情况,处理 Pod 和节点间的调度问题。
    • 修改 Pod 所属工作负载的 调度策略,容忍该污点。详细操作,请参见 工作负载
      alt
    • 通过修改节点池配置,批量更新节点污点。详细操作,请参见 编辑节点池。您也可以单个编辑节点污点或删除污点。

      说明

      系统污点不支持删除。

      alt
    • 更多处理方法,可参考 Kubernetes 官方文档

节点与 Pod 的亲和性不匹配

  1. 登录 容器服务控制台,在左侧导航栏中单击 集群
  2. 单击目标集群名称,在集群管理页面的左侧导航栏中单击 节点
  3. 在 节点 页面,选择节点名称右侧 操作 列下的... > 标签管理,查看节点的标签信息。
  4. 基于节点标签,调整 Pod 对应工作负载的 调度策略。下图以无状态负载为例,详细操作,请参见 管理无状态负载。更多亲和性相关说明,请参见 Kubernetes 官方文档
    • 节点亲和调度强制调度 改为 优先调度
      alt
    • 调整 Pod 亲和性/反亲和性,确保能有节点与之匹配。
      alt