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

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

가상 프라이빗 클라우드 클래식 인프라

ibmcloud ks 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 과 같은 외부 컨테이너 레지스트리에 액세스할 수 없으므로 워크로드에 필요한 이미지를 가져올 수 없음을 의미합니다.

워커 노드가 인터넷에 액세스할 수 있고 외부 컨테이너 레지스트리에 연결할 수 있는지 확인합니다. 또한 네트워크 정책, 보안 그룹 및 방화벽 설정도 확인하세요.

  1. 영향을 받는 노드에서 실행 중인 파드에서 노드가 레지스트리에 액세스할 수 있는지 확인합니다. 디버그 포드를 시작합니다.

    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>
    
  2. 디버그 포드에서 추적 경로 또는 핑을 실행하여 워커 노드에 아웃바운드 인터넷 액세스 권한이 있는지 확인합니다.

    traceroute <registry_address>
    
    ping <registry_address>
    
  3. 제한적인 네트워크 정책과 글로벌 네트워크 정책이 적용되어 있는지 확인하세요.

    kubectl get networkpolicies --all-namespaces
    
     kubectl get globalnetworkpolicies.crd.projectcalico.org
    

    워커 노드에서 인터넷 또는 특정 레지스트리 도메인으로의 송신 트래픽을 차단하는 정책을 찾아보세요.

  4. 클러스터의 보안 그룹을 확인하고 아웃바운드 트래픽이 허용되는지 확인하세요. 각 워커 노드에 대해 보안 그룹을 확인합니다. HTTPS (TCP 포트 443) 또는 DNS(UDP 포트 53)를 차단하는 규칙이 없는지 확인하세요.

  5. 인프라(네트워크 어플라이언스, 보안 그룹, ACL 등)를 검토하고 필요한 경우 아웃바운드 액세스를 사용 설정하세요.

  6. 비공개 컨테이너 레지스트리를 사용하는 경우 DNS 확인 및 인증이 작동하는지 확인하세요.

  7. 수정 사항을 적용한 후 몇 분 정도 기다렸다가 클러스터 상태를 다시 확인하세요.

  8. 문제가 지속되면 지원팀에 문의하여 추가 지원을 받으세요. 지원 케이스 열기 케이스 세부 정보에 관련 로그 파일, 오류 메시지 또는 명령 출력을 모두 포함해야 합니다.