ポッドが保留状態のままになるのはなぜですか?
仮想プライベート・クラウド クラシック・インフラストラクチャー
kubectl get pods
を実行すると、ポッドの状態が Pending になる場合があります。
Kubernetes クラスターを作成したばかりの場合は、まだワーカー・ノードが構成中の可能性があります。
このクラスターが以前から存在するものである場合:
- ポッドをデプロイするための十分な容量がクラスター内にない可能性があります。
- ポッドがリソースの要求または制限を超えた可能性があります。
このタスクには、クラスターに対する IBM Cloud IAM 管理者プラットフォーム・アクセス役割と、すべての名前空間に対する管理者サービス役割が必要です。
Kubernetes クラスターを作成したばかりの場合は、以下のコマンドを実行して、ワーカー・ノードが初期化するまで待ちます。
kubectl get nodes
クラスターが以前から存在するものである場合は、クラスターの容量を確認します。
-
デフォルトのポート番号でプロキシーを設定します。
kubectl proxy
-
Kubernetes ダッシュボードを開きます。
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
-
ポッドをデプロイするための十分な容量がクラスター内にあるか確認します。
-
クラスターに十分な容量がない場合は、ワーカー・プールをサイズ変更してノードをさらに追加します。
-
ワーカー・プールの現在のサイズとフレーバーを確認して、サイズ変更するワーカー・プールを決定します。
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>
-
-
オプション: ポッドのリソース要求を確認します。
-
resources.requests
値がワーカー・ノードの容量を超えていないことを確認します。 例えば、ポッドがcpu: 4000m
、または 4 コアを要求しても、ワーカー・ノードのサイズが 2 コアのみの場合、ポッドをデプロイすることはできません。kubectl get pod <pod_name> -o yaml
-
要求が使用可能な容量を超えた場合は、要求を満たすことができるワーカー・ノードを持つワーカー・プールを追加します。 詳しくは、 クラシック・クラスターへのワーカー・ノードの追加 または VPC クラスターへのワーカー・ノードの追加 を参照してください。
-
-
ワーカー・ノードが完全にデプロイされた後もポッドが pending 状態のままである場合は、 Kubernetes の資料 を参照して、ポッドの pending 状態のトラブルシューティングをさらに行ってください。