すべてのワーカー・ノードを削除した後で、新しいワーカー・ノードでポッドが始動しないのはなぜですか?
ワーカーノードの削除に失敗した場合や、ポッドが応答しなくなった場合のトラブルシューティングを行います。
仮想プライベートクラウド クラシック・インフラストラクチャー
クラスター内のすべてのワーカー・ノードを削除し、ワーカー・ノードがゼロになりました。 その後、1 つ以上のワーカー・ノードを追加しました。 以下のコマンドを実行したところ、Kubernetes コンポーネントのいくつかのポッドが ContainerCreating 状況になり、calico-node ポッドが CrashLoopBackOff 状況になって、そのまま進展がありません。
oc -n calico-system get pods
クラスター内のすべてのワーカー・ノードを削除すると、calico-kube-controllers ポッドを実行するワーカー・ノードがなくなることになります。 Calico コントローラー・ポッドのデータを更新して、削除されたワーカー・ノードのデータを削除することはできません。 Calico コントローラー・ポッドが新しいワーカー・ノード上で実行を再開するとき、そのデータは新しいワーカー・ノード用に更新されておらず、そのため calico-node ポッドは開始されません。
既存の calico-node ワーカー・ノード・エントリーを削除し、新しいポッドを作成できるようにします。
始める前に: Calico CLI をインストールします。
-
ibmcloud oc cluster configコマンドを実行し、出力をコピー・アンド・ペーストしてKUBECONFIG環境変数を設定します。--adminコマンドに--networkオプションとibmcloud oc cluster configオプションを指定します。--adminオプションは、インフラストラクチャー・ポートフォリオにアクセスし、ワーカー・ノードで Calico コマンドを実行するためのキーをダウンロードします。--networkオプションは、すべての Calico コマンドを実行するための Calico 構成ファイルをダウンロードします。ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID --admin --network -
calico-node状況のままになっているCrashLoopBackOffポッドのNODEIP アドレスをメモします。oc -n calico-system get pods -o wideこの出力例では、ワーカー・ノード
10.176.48.106でcalico-nodeポッドを開始できません。NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ... calico-kube-controllers-656c5785dd-kc9x2 1/1 Running 0 25h 10.176.48.107 10.176.48.107 <none> <none> calico-node-mkqbx 0/1 CrashLoopBackOff 1851 25h 10.176.48.106 10.176.48.106 <none> <none> coredns-7b56dd58f7-7gtzr 0/1 ContainerCreating 0 25h 172.30.99.82 10.176.48.106 <none> <none> -
calico-nodeワーカー・ノード・エントリーの ID を取得します。 前のステップで取得したワーカー・ノード IP アドレスの ID のみをコピーします。calicoctl get nodes -o wide -
ID を使用して、ワーカー・ノード・エントリーを削除します。 ワーカー・ノード・エントリーの削除後、Calico コントローラーにより、新しいワーカー・ノード上で
calico-nodeポッドが再スケジュールされます。calicoctl delete node <node_ID> -
calico-nodeポッドを含む Kubernetes コンポーネント・ポッドが実行されるようになったことを確認します。calico-nodeポッドが再スケジュールされ、新しいコンポーネント・ポッドが作成されるまでには数分かかることがあります。oc -n calico-system get pods
今後このエラーが発生しないようにするためにも、クラスター内のすべてのワーカー・ノードの削除はしないでください。 クラスター内で常に少なくとも 1 つのワーカー・ノードを実行します。Ingress または経路を使用してアプリを公開する場合は、ゾーンごとに少なくとも 2 つのワーカー・ノードを実行します。