为什么 pod 仍处于暂挂状态?
虚拟私有云 经典基础架构
运行 kubectl get pods
时,可能看到 pod 保持暂挂状态。
如果刚刚创建了 Kubernetes 集群,那么工作程序节点可能仍在配置中。
如果这是现有集群:
- 那么可能是集群中没有足够的容量来部署 pod。
- pod 可能已超出资源请求或限制。
此任务需要集群的 IBM Cloud IAM 管理员 平台访问角色 和所有名称空间的 管理者 服务访问角色。
如果刚创建了 Kubernetes 集群,请运行以下命令并等待工作程序节点初始化。
kubectl get nodes
如果这是现有集群,请检查集群容量。
-
使用缺省端口号设置代理。
kubectl proxy
-
打开 Kubernetes 仪表板。
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
-
检查集群中是否有足够的容量来部署 pod。
-
如果集群中没有足够的容量,请调整工作程序池的大小以添加更多节点。
-
查看工作程序池的当前大小和类型模板,以决定要调整哪个工作程序池的大小。
ibmcloud ks worker-pool ls
-
调整工作程序池的大小,以将更多节点添加到池所跨的每个专区。
ibmcloud ks worker-pool resize --worker-pool <worker_pool> --cluster <cluster_name_or_ID> --size-per-zone <workers_per_zone>
-
-
可选:检查 pod 资源请求。
-
确认
resources.requests
值不大于工作程序节点的容量。 例如,如果 pod 请求cpu: 4000m
或 4 个核心,但工作程序节点大小仅为 2 个核心,那么无法部署 pod。kubectl get pod <pod_name> -o yaml
-
如果请求超出可用容量,请添加具有可实现请求的工作程序节点的工作程序池。 有关更多信息,请参阅 将工作程序节点添加到经典集群 或 将工作程序节点添加到 VPC 集群。
-
-
如果在工作程序节点完全部署后,pod 仍处于 pending 状态,请查看 Kubernetes 文档 以进一步对 pod 的暂挂状态进行故障诊断。