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

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

虚拟私有云 经典基础架构

运行 kubectl get pods 时,可能看到 pod 保持暂挂状态。

如果刚刚创建了 Kubernetes 集群,那么工作程序节点可能仍在配置中。

如果这是现有集群:

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

此任务需要集群的 IBM Cloud IAM 管理员 平台访问角色 和所有名称空间的 管理者 服务访问角色

如果刚创建了 Kubernetes 集群,请运行以下命令并等待工作程序节点初始化。

kubectl get nodes

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

  1. 使用缺省端口号设置代理。

    kubectl proxy
    
  2. 打开 Kubernetes 仪表板。

    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
    
  3. 检查集群中是否有足够的容量来部署 pod。

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

    1. 查看工作程序池的当前大小和类型模板,以决定要调整哪个工作程序池的大小。

      ibmcloud ks worker-pool ls
      
    2. 调整工作程序池的大小,以将更多节点添加到池所跨的每个专区。

      ibmcloud ks 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。

      kubectl get pod <pod_name> -o yaml
      
    2. 如果请求超出可用容量,请添加具有可实现请求的工作程序节点的工作程序池。 有关更多信息,请参阅 将工作程序节点添加到经典集群将工作程序节点添加到 VPC 集群

  6. 如果在工作程序节点完全部署后,pod 仍处于 pending 状态,请查看 Kubernetes 文档 以进一步对 pod 的暂挂状态进行故障诊断。