IBM Cloud Docs
ネットワーク・ステータスが NHC007 エラーを表示するのはなぜですか?

ネットワーク・ステータスが NHC007 エラーを表示するのはなぜですか?

Virtual Private Cloud

ibmcloud ks cluster health issues --cluster <CLUSTER_ID> を実行してクラスタの健全性のステータスを確認すると、次の例のようなエラーが表示されます。

ID       Component   Severity   Description
NHC007   Network     Warning    One or more DNS resolvers are not reachable from certain worker nodes.

問題の詳細を確認すると、どのワーカーノードからどの DNSリゾルバにアクセスできないかがわかります。

ibmcloud ks cluster health issue get --cluster <CLUSTER_ID> --issue NHC007

この警告は、特定のワーカーノードからのDNSトラフィックがブロックされていることを示しています。おそらく、制限的なポリシーか IaaS-level の設定が原因でしょう。

Calico HostEndpoint (HEP)および GlobalNetworkPolicy (GNP)リソース、ならびにACL、セキュリティグループ、およびアウトバウンドDNSトラフィックをブロックする可能性のあるその他のネットワークアプライアンスを確認してください。

  1. Calico HostEndpoint (HEP) リソースをレビューして、 Calico HEP をリストアップし、HEP 設定がワーカーノードインタフェースに制限を誤って適用していないか確認します。

    kubectl get hostendpoints.crd.projectcalico.org
    

    特定のHEPを説明するためのコマンド例。

    kubectl describe hostendpoints.crd.projectcalico.org <hep-name>
    
  2. Calico GlobalNetworkPolicies (GNP)を見直し、GNPをリストアップする。

    kubectl get globalnetworkpolicies.crd.projectcalico.org
    
  3. 制限的なDNSルールに関する特定のポリシーを検査する。 ポート53に影響する、またはノードラベル/セレクタに適用される egress ルールに焦点を当てる。

    kubectl get globalnetworkpolicies.crd.projectcalico.org <policy-name> -o yaml
    
  4. デバッグポッドから DNS アクセスをテストするには、一時的なデバッグポッドを実行し、影響を受けるワーカーノード名を nodeName に使用します。 ここでDNSが失敗する場合、インフラレベルのブロックが原因かもしれない。

    kubectl run  -i --tty debug \
      --image=us.icr.io/armada-master/network-alpine:latest \
      --restart=Never \
      --overrides='
    {
      "apiVersion": "v1",
      "spec": {
        "nodeName": "<node-name>"
      }
    }' -- sh
    
  5. デバッグポッド内で以下のコマンドを実行する。

    nslookup ibm.com
    
    dig ibm.com
    
  6. ACL(アクセス制御リスト)をチェックする。

    • コンソールで、 VPC > アクセス制御リストに移動し、 アウトバウンドルールが UDPポート53とTCPポート53の両方を許可していることを確認します。

    • CLIでは、以下のコマンドを実行してACLを検査する。

      ibmcloud is network-acls
      
      ibmcloud is network-acl <acl-id>
      
  7. セキュリティグループルールを検査して、ワーカーノードに関連付けられているセキュリティグループを見つけ、セキュリティグループ設定をチェックするために実行します。 DNSトラフィック(UDP/TCPポート53)をブロックするアウトバウンドルールがないことを確認する。

    ibmcloud is security-group-rules <security-group-id>
    
  8. インフラ(ネットワーク・アプライアンス、ACLなど)を見直し、 UDPおよびTCPポート53のアウトバウンド・トラフィックを許可する

  9. これらの項目を確認してもDNSに到達できない場合は、サポートに連絡してください。 サポート Case を開きます。 ケースの詳細には、関連するログファイル、エラーメッセージ、コマンド出力を必ず含めてください。