为什么 pod 仍处于暂挂状态?

排查仍处于 “待处理” 状态且无法在可用工作节点上进行调度的 Pod。

虚拟私有云 传统基础设施

运行 oc get pods`` 时,你会看到一些仍处于 “Pending” 状态的 Pod。

如果您刚刚创建了 Red Hat OpenShift 集群,工作节点可能仍在进行配置。

如果该群集是现有群集,则可能是以下问题造成的。

  • 那么可能是集群中没有足够的容量来部署 pod。
  • pod 可能已超出资源请求或限制。

此任务要求 IBM Cloud IAM 管理员平台访问角色 用于群集,管理器服务访问角色 用于所有命名空间。

如果您刚刚创建了 Red Hat OpenShift 集群,请运行以下命令,并等待工作节点完成初始化。

oc get nodes

如果这是现有集群,请检查集群容量。

  1. 控制面板中选择仪表盘。

  2. 单击 Red Hat OpenShift Web 控制台

  3. 检查集群中是否有足够的容量来部署 pod。

  4. 如果集群中没有足够的容量,请调整工作程序池的大小以添加更多节点。

    1. 查看工作程序池的当前大小和类型模板,以决定要调整哪个工作程序池的大小。
        ibmcloud oc worker-pool ls
        ```
    2. 调整工作程序池的大小,以将更多节点添加到池所跨的每个专区。
    
    ```sh {: pre}
        ibmcloud oc worker-pool resize --worker-pool WORKER_POOL --cluster CLUSTER_NAME_OR_ID --size-per-zone WORKERS_PER_ZONE
        ```
    
  5. 可选:检查 pod 资源请求。

    1. 确认 resources.requests 值不大于工作程序节点的容量。 例如,如果 Pod 请求 cpu: 4000m (即 4 个核心),但工作节点的大小仅为 2 个核心,则无法部署该 Pod。
        oc get pod <pod_name> -o yaml
        ```
    2. 如果请求超出了可用容量,请添加一个包含能够处理该请求的工作节点的工作池。 有关更多信息,请参阅 [将工作程序节点添加到经典集群](/docs/openshift?topic=openshift-add-workers-classic) 或 [将工作程序节点添加到 VPC 集群](/docs/openshift?topic=openshift-add-workers-vpc)。
    
    
  6. 如果工作节点完全部署后,您的 Pod 仍处于 “待处理”状态,请查阅《 Kubernetes 》文档,以进一步排查 Pod 处于“待处理”状态的问题。