為什麼網路狀態顯示 NHC004 錯誤?

虛擬私有雲

排除網路狀態檢查錯誤 NHC004 的問題。

當您執行 ibmcloud oc cluster health issues --cluster <CLUSTER_ID> 檢查群集的健康狀態時,您會看到類似以下範例的錯誤。

ID       Component   Severity   Description
NHC004   Network     Warning    Some worker nodes in the cluster can not resolve VPE gateway hostnames.

此警告表示與虛擬專用端點 (VPE) 相關的主機名稱的 DNS 解析失敗。 這可能影響依賴私有連線至 IBM Cloud 服務的服務。

確保您的工作節點已設定正確的 DNS 解析器,並且可以解析 VPE 閘道主機名稱。 以下步驟可協助您確認 DNS 解析問題是由於 VPE 端點無法連線,還是由於設定不正確所致。

如何尋找 VPC 群集的 VPE 閘道

若要識別 IBM Cloud Kubernetes Service 群集使用的 VPE 閘道,請遵循下列步驟:

步驟 1. 使用 IBM Cloud CLI 列出端點閘道

  1. 執行下列指令以列出 VPC 中的所有 VPE(端點)閘道。

    ibmcloud is endpoint-gateways
    

    列出特定 VPC 的 VPE 的範例指令。

    ibmcloud is endpoint-gateways --vpc <VPC-ID>
    
  2. 篩選 iks-cluster_ID 的輸出,並尋找 Service Endpoints。 這會顯示相關的服務、IP 位址和端點名稱。

步驟 2. 使用 IBM Cloud 主控台列出端點閘道

  1. 導覽至 VPC 基礎結構 > 端點閘道
  2. 選擇您的 VPC
  3. 檢視私人服務存取的設定閘道,並檢視 DNS/IP 資訊

步驟 3. 找到 VPE 閘道主機名稱後,完成下列步驟。

  1. 從在 Worker 節點上執行的 Pod,啟動一個 debug shell:

    kubectl run -i --tty debug --image=us.icr.io/armada-master/network-alpine:latest --restart=Never -- sh
    
  2. 在 pod 內,嘗試解析 VPE 閘道主機名稱。

    nslookup <vpe-hostname>
    
    dig <vpe-hostname>
    
  3. 直接使用 VPC DNS 服務測試 DNS 解析。

    dig <vpe-hostname> @161.26.0.7
    
    dig <vpe-hostname> @161.26.0.8
    
  4. 如果您的群集使用自訂 DNS 配置 (例如,修改 CoreDNS 設定),請檢查配置。

    kubectl get configmap coredns -n kube-system -o yaml
    
  5. 如果需要,請更新 CoreDNS 設定,以確保包含 VPE 解析 DNS 伺服器,然後重載 CoreDNS。

    kubectl rollout restart deployment coredns -n kube-system
    
  6. 確保您的 VPC DNS 設定允許存取 VPE 主機名稱。 在 IBM Cloud 主控台中,導覽到 VPC > DNS 服務,並驗證 DNS 規則。

  • 如需 IBM Cloud Kubernetes Service 中虛擬私人端點 (VPE) 閘道的更多資訊,請參閱 虛擬私人端點(VPE)閘道

  • 修正後,請等待幾分鐘,然後再重新檢查群集的健康狀態。

  • 若問題仍未解決,請聯絡支援部門以獲取進一步協助。 開啟 支援個案。 在案例詳細資訊中,請務必包含任何相關的記錄檔、錯誤訊息或指令輸出。