デフォルトの istio-ingressgateway
ポッドが pending
でスタックするのはなぜですか?
kubectl get pod -n istio-system
を実行すると、 istio-ingressgateway
ポッドが pending
でスタックします。
さらに、 kubectl describe pods -n istio-system -l app=istio-ingressgateway
を実行していずれかのポッドの詳細を取得し、出力の Events
セクションを確認すると、以下のようなメッセージが表示されます。
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 18s (x4 over 15m) default-scheduler 0/3 nodes are available: 3 node(s) didn't match Pod's node affinity/selector. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling..
istio-ingressgateway
ポッドのゾーン・ラベル・キーが、どのノードのラベルとも一致しない場合があります。 これにより、ノード・アフィニティー・ルールがポッドをノードにスケジュールしないようにします。
ゾーン・ラベル・キーを確認するには、 kubectl describe cm managed-istio-custom -n ibm-operators
を実行して、マネージド Istio カスタム ConfigMapを表示します。 ConfigMap で、 istio-ingressgateway-zone-1
などの istio-ingressgateway-zone-<#>
形式のキーを確認します。 鍵が ConfigMapに存在しない場合、ポッドとワーカー・ノードのラベルが一致しません。
この問題を解決するには、ゾーン・ラベルを ConfigMapに追加する Istio セットアップ・ジョブを再始動します。
-
ibm-system
名前空間内の Istio セットアップ・ジョブを削除します。kubectl delete job -n ibm-system -l addon.cleanup=istio
-
ジョブが ConfigMap を更新し、
istio-ingressgateway
ポッドがゾーン・ラベルを取得するまで 15 分待ちます。 -
kubectl get pod -n istio-system
を実行して、ポッドの状況を確認します。