네트워크 상태에 NHC007 오류가 표시되는 이유는 무엇인가요?

가상 사설 클라우드

네트워크 상태 확인 오류 NHC007 의 문제 해결.

ibmcloud oc 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

이 경고는 제한 정책 또는 IaaS-level 구성으로 인해 특정 작업자 노드의 DNS 트래픽이 차단되고 있음을 나타냅니다.

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
        ```
        ```sh {: pre}
        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에 연결할 수 없는 경우 지원팀에 문의하세요. 지원 케이스 열기 케이스 세부 정보에 관련 로그 파일, 오류 메시지 또는 명령 출력을 모두 포함해야 합니다.