Azure Arc 사용 Kubernetes 클러스터에 대한 연결 문제 진단

클러스터를 Azure Arc에 연결하는 데 문제가 있는 경우 여기에 나와 있는 문제 중 하나 때문일 수 있습니다. 두 가지 순서도에 단계별 도움말이 제공됩니다. 하나는 프록시 서버를 사용하지 않는 경우이고 다른 하나는 네트워크 연결에서 프록시 서버를 사용하는 경우 적용됩니다.

이 순서도의 단계는 Azure CLI 또는 Azure PowerShell을 사용하여 클러스터를 연결하는지 여부에 관계없이 적용됩니다. 그러나 일부 단계에서는 Azure CLI를 사용해야 합니다. 아직 Azure CLI를 설치하지 않은 경우 시작하기 전에 설치해야 합니다.

프록시 없이 연결

프록시 서버 없이 클러스터를 Azure Arc에 연결하려고 할 때 문제를 진단하려면 이 순서도를 검토합니다. 각 항목에 대한 자세한 내용은 아래에서 설명합니다.

Flowchart showing a visual representation of checking for connection issues when not using a proxy.

Azure ID에 충분한 권한이 있나요?

클러스터를 연결하기 위한 필수 구성 요소를 검토하고 클러스터를 연결하는 데 사용하는 ID에 필요한 권한이 있는지 확인합니다.

최신 버전의 Azure CLI를 실행하고 있나요?

설치된 최신 버전이 있는지 확인하세요.

Azure PowerShell을 사용하여 클러스터를 연결한 경우 최신 버전을 실행하고 있는지 확인합니다.

최신 확장 버전이 connectedk8s인가요?

다음 명령을 실행하여 Azure CLI connectedk8s 확장을 최신 버전으로 업데이트합니다.

az extension update --name connectedk8s

확장을 아직 설치하지 않은 경우 다음 명령을 실행하여 확장을 설치할 수 있습니다.

az extension add --name connectedk8s

kubeconfig가 올바른 클러스터를 가리키고 있나요?

kubectl config get-contexts를 실행하여 대상 컨텍스트 이름을 확인합니다. 그런 다음, kubectl config use-context <target-cluster-name>를 실행하여 기본 컨텍스트를 올바른 클러스터로 설정합니다.

모든 필수 리소스 공급자가 등록되어 있나요?

Microsoft.Kubernetes, Microsoft.KubernetesConfiguration, and Microsoft.ExtendedLocation 리소스 공급자가 등록되어 있는지 확인합니다.

모든 네트워크 요구 사항을 충족하나요?

네트워크 요구 사항을 검토하고 필요한 엔드포인트가 차단되지 않았는지 확인합니다.

azure-arc 네임스페이스의 모든 Pod가 실행되고 있나요?

모든 것이 올바르게 작동하는 경우 Pod는 모두 Running 상태에 있어야 합니다. kubectl get pods -n azure-arc를 실행하여 Pod의 상태가 Running이 아닌지 확인합니다.

여전히 문제가 있나요?

위의 단계에서는 많은 일반적인 연결 문제를 해결하지만 여전히 연결할 수 없는 경우 문제 해결 로그 파일을 생성한 다음, 지원 요청을 열어 문제를 추가로 조사할 수 있습니다.

문제 해결 로그 파일을 생성하려면 다음 명령을 실행합니다.

az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>

지원 요청을 만들추가 세부 정보 섹션에서 파일 업로드 옵션을 사용하여 생성된 로그 파일을 업로드합니다.

프록시 서버와 연결

하나 이상의 컴퓨터에서 프록시 서버를 사용하는 경우 기본 문제 해결 단계를 위해 비 프록시 순서도의 처음 5단계(리소스 공급자 등록을 통해)를 완료합니다. 그런 다음, 여전히 문제가 발생하는 경우 다음 순서도에서 추가 문제 해결 단계를 검토합니다. 각 항목에 대한 자세한 내용은 아래에서 설명합니다.

Flowchart showing a visual representation of checking for connection issues when using a proxy.

컴퓨터가 프록시 서버를 통해 명령을 실행하고 있나요?

컴퓨터가 프록시 서버 뒤에서 명령을 실행하는 경우 필요한 모든 환경 변수를 설정해야 합니다. 자세한 내용은 아웃바운드 프록시 서버를 사용하여 연결을 참조하세요.

예시:

export HTTP_PROXY="http://<proxyIP>:<proxyPort>"
export HTTPS_PROXY="https://<proxyIP>:<proxyPort>"
export NO_PROXY="<cluster-apiserver-ip-address>:<proxyPort>"

프록시 서버가 신뢰할 수 있는 인증서만 허용하나요?

az connectedk8s connect 명령을 실행할 때 --proxy-cert <path-to-cert-file>를 포함하여 인증서 파일 경로를 포함해야 합니다.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>

프록시 서버가 필요한 네트워크 엔드포인트에 연결할 수 있나요?

네트워크 요구 사항을 검토하고 필요한 엔드포인트가 차단되지 않았는지 확인합니다.

프록시 서버가 HTTP만 사용하나요?

프록시 서버에서 HTTP만 사용하는 경우 두 매개 변수 모두에 proxy-http를 사용할 수 있습니다.

프록시 서버가 HTTP 및 HTTPS 둘 다로 설정된 경우 지정된 --proxy-https--proxy-http 매개 변수를 사용하여 az connectedk8s connect 명령을 실행합니다. --proxy-http(HTTP 프록시의 경우) 및 --proxy-https(HTTPS 프록시의 경우)를 사용하고 있는지 확인합니다.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port>  

프록시 서버에 서비스 간 통신을 위해 건너뛰기 범위가 필요한가요?

건너뛰기 범위가 필요한 경우 az connectedk8s connect 명령에서 --proxy-skip-range <excludedIP>,<excludedCIDR>를 사용합니다.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR>

azure-arc 네임스페이스의 모든 Pod가 실행되고 있나요?

모든 것이 올바르게 작동하는 경우 Pod는 모두 Running 상태에 있어야 합니다. kubectl get pods -n azure-arc를 실행하여 Pod의 상태가 Running이 아닌지 확인합니다.

여전히 문제가 있나요?

위의 단계에서는 많은 일반적인 연결 문제를 해결하지만 여전히 연결할 수 없는 경우 문제 해결 로그 파일을 생성한 다음, 지원 요청을 열어 문제를 추가로 조사할 수 있습니다.

문제 해결 로그 파일을 생성하려면 다음 명령을 실행합니다.

az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>

지원 요청을 만들추가 세부 정보 섹션에서 파일 업로드 옵션을 사용하여 생성된 로그 파일을 업로드합니다.

다음 단계