ネットワーク・ステータスが NHC003 エラーを表示するのはなぜですか?
仮想プライベートクラウド クラシック・インフラストラクチャー
ネットワークのヘルスチェックエラー「 NHC003 」のトラブルシューティング。
ibmcloud oc cluster health issues --cluster <CLUSTER_ID> を実行してクラスタの健全性のステータスを確認すると、次の例のようなエラーが表示されます。
ID Component Severity Description
NHC003 Network Warning Some worker nodes in the cluster can not reach container image registries to pull images.
問題の詳細を確認すると、どのワーカーノードからどのレジストリにアクセスできないかがわかります。
ibmcloud ks cluster health issue get --cluster <CLUSTER_ID> --issue NHC003
この警告は、一部のワーカーノードが Docker Hub、Quay、 IBM Cloud Container Registry などの外部コンテナレジストリーにアクセスできず、ワークロードに必要なイメージをプルできないことを意味します。
ワーカーノードがインターネットにアクセスでき、外部のコンテナレジストリーにアクセスできることを確認する。 ネットワークポリシー、セキュリティグループ、ファイアウォール設定も確認する。
-
影響を受けるノード上で実行されているポッドから、そのノードがレジストリにアクセスできるかどうかを確認します。 デバッグポッドを起動する。
kubectl run -i --tty debug \ --image=us.icr.io/armada-master/network-alpine:latest \ --restart=Never \ --overrides=' { "apiVersion": "v1", "spec": { "nodeName": "<node-name>" } }' -- sh次にポッド内で、コンテナレジストリにアクセスしてみる。
wget <registry_address>または、
curl:curl -I <registry_address> -
デバッグポッドから
tracerouteまたは ping を実行して、ワーカーノードがアウトバウンドのインターネットアクセスを持っているか確認します。traceroute <registry_address>ping <registry_address> -
制限的なネットワーク・ポリシーやグローバル・ネットワーク・ポリシーがあるかどうかを確認する。
kubectl get networkpolicies --all-namespaceskubectl get globalnetworkpolicies.crd.projectcalico.orgワーカーノードからインターネットまたは特定のレジストリドメインへのイグジットトラフィックをブロックするポリシーを探す。
-
クラスタのセキュリティ・グループを確認し、アウトバウンド・トラフィックが許可されていることを確認します。 各ワーカーノードについて、セキュリティグループをチェックする。 HTTPS ( TCP port 443)またはDNS ( UDP port 53)をブロックするルールがないことを確認してください。
-
インフラ(ネットワーク・アプライアンス、セキュリティ・グループ、ACLなど)を見直し、必要に応じてアウトバウンド・アクセスを有効にする。
-
プライベート・コンテナ登録を使用している場合は、DNS解決と認証が機能していることを確認する。
-
修正プログラムの適用後、数分待ってからクラスタの健全性を再確認します。
-
それでも問題が解決しない場合は、サポートまでご連絡ください。 サポート Case を開きます。 ケースの詳細には、関連するログファイル、エラーメッセージ、コマンド出力を必ず含めてください。