为什么网络状态显示 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. 从工作节点上运行的 pod 启动调试 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)网关

  • 更正后,等待几分钟并重新检查群集的健康状况。

  • 如果问题仍然存在,请联系客服以获取进一步帮助。 打开 支持案例。 在案例详细信息中,请务必包含任何相关日志文件、错误信息或命令输出。