IBM Cloud Docs
ポッドが保留状態のままになるのはなぜですか?

ポッドが保留状態のままになるのはなぜですか?

仮想プライベート・クラウド クラシック・インフラストラクチャー

kubectl get pods を実行すると、ポッドの状態が Pending になる場合があります。

Kubernetes クラスターを作成したばかりの場合は、まだワーカー・ノードが構成中の可能性があります。

このクラスターが以前から存在するものである場合:

  • ポッドをデプロイするための十分な容量がクラスター内にない可能性があります。
  • ポッドがリソースの要求または制限を超えた可能性があります。

このタスクには、クラスターに対する 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. ポッドをデプロイするための十分な容量がクラスター内にあるか確認します。

  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. オプション: ポッドのリソース要求を確認します。

    1. resources.requests 値がワーカー・ノードの容量を超えていないことを確認します。 例えば、ポッドが cpu: 4000m、または 4 コアを要求しても、ワーカー・ノードのサイズが 2 コアのみの場合、ポッドをデプロイすることはできません。

      kubectl get pod <pod_name> -o yaml
      
    2. 要求が使用可能な容量を超えた場合は、要求を満たすことができるワーカー・ノードを持つワーカー・プールを追加します。 詳しくは、 クラシック・クラスターへのワーカー・ノードの追加 または VPC クラスターへのワーカー・ノードの追加 を参照してください。

  6. ワーカー・ノードが完全にデプロイされた後もポッドが pending 状態のままである場合は、 Kubernetes の資料 を参照して、ポッドの pending 状態のトラブルシューティングをさらに行ってください。