컨테이너 레지스트리에 대한 연결 확인
이 문서는 시리즈의 일부입니다. 개요부터 시작합니다.
AKS(Azure Kubernetes Service) 클러스터에 컨테이너화된 애플리케이션을 성공적으로 배포하려면 클러스터와 컨테이너 레지스트리 간의 연결을 확인해야 합니다. 이 단계에서는 작업자 노드가 레지스트리에서 필요한 컨테이너 이미지를 끌어오는 데 필요한 권한을 갖도록 보장합니다.
증상 식별
에이전트 노드에서 실행되는 kubelet이 Pod에 대한 컨테이너를 만들면 하나 이상의 컨테이너가 오류로 인해 ImagePullBackOff
대기 상태로 끝날 수 있습니다. ImagePullBackoff 는 공용 또는 프라이빗 레지스트리에서 필요한 컨테이너 이미지를 끌어오지 못했음을 나타내는 Kubernetes의 일반적인 오류 메시지입니다. 네트워크 연결 문제, 잘못된 이미지 이름 또는 태그, 권한 부족 또는 자격 증명 누락 등 다양한 요인으로 인해 이 오류가 발생할 수 있습니다.
BackOff
상태 부분은 Kubernetes가 후속 시도 사이에 지연이 증가하면서 이미지를 계속 끌어오려고 시도한다는 것을 의미합니다. 지연은 일반적으로 Kubernetes에서 300초(5분)로 설정되는 미리 결정된 제한에 도달할 때까지 점진적으로 증가합니다.
정확도를 위해 레지스트리 및 이미지 이름을 두 번 검사 것이 중요합니다. 또한 AKS 클러스터에 적절한 컨테이너 레지스트리에서 이미지를 끌어오는 데 필요한 권한이 있는지 확인합니다.
역할 할당
컨테이너 레지스트리를 기존 AKS 클러스터에 연결하는 경우 AcrPull 역할은 레지스트리를 통해 AKS 클러스터의 에이전트 풀과 연결된 Microsoft Entra 관리 ID에 자동으로 할당됩니다. 자세한 내용은 AKS에서 Container Registry로 인증을 참조 하세요.
다음 명령을 실행하여 Kubernetes 클러스터의 kubelet 관리 ID 및 현재 역할 할당을 검색합니다.
# Get the kubelet managed identity.
ASSIGNEE=$(az aks show -g $RESOURCE_GROUP -n $NAME --query identityProfile.kubeletidentity.clientId -o tsv)
az role assignment list --assignee $ASSIGNEE --all -o table
다음 명령을 실행하여 kubelet 관리 ID에 역할을 할당 AcrPull
합니다.
AZURE_CONTAINER_REGISTRY_ID=$(az acr show --name <container-registry-name> --query id --output tsv)
az role assignment create --assignee $ASSIGNEE --scope $AZURE_CONTAINER_REGISTRY_ID --role acrpull
Container Registry 문제 해결
다음 섹션에서는 Azure 컨테이너 레지스트리에 네트워킹, 로그인 또는 성능 문제가 발생하는 경우 참조할 수 있는 가이드를 제공합니다.
네트워킹 문제 해결
가상 네트워크 또는 방화벽 또는 프록시 서버 뒤에서 Azure 컨테이너 레지스트리에 액세스하는 것과 관련된 문제가 발생하는 경우 다음 솔루션을 고려하세요.
- 클라이언트 방화벽 액세스를 구성합니다.
- 레지스트리에 대한 공용 액세스를 구성합니다.
- 가상 네트워크 액세스를 구성합니다.
- 서비스에 대한 액세스를 구성합니다.
로그인 문제 해결
Azure Container Registry에 로그인할 때 인증 및 권한 부여 문제가 발생하는 경우 다음 솔루션을 고려하세요.
- 사용자 환경에서 Docker 구성을 확인합니다.
- 올바른 레지스트리 이름을 지정합니다.
- 레지스트리에 액세스할 자격 증명을 확인합니다.
- 레지스트리에 대한 공용 액세스를 구성합니다.
- 레지스트리 로그인 문제를 해결합니다.
- 자격 증명이 만료되지 않았는지 확인합니다.
성능 문제 해결
Azure 컨테이너 레지스트리에 성능 문제가 발생하는 경우 다음 솔루션을 고려하세요.
- 아티팩트 캐시를 사용하도록 설정합니다.
- 네트워크 연결 속도를 확인합니다.
- 이미지 계층 압축 또는 추출 속도에 영향을 줄 수 있는 클라이언트 하드웨어를 검사합니다.
- 레지스트리 서비스 계층 또는 환경에서 구성된 제한을 검토합니다.
- 주변 지역의 복제본(replica) 최적의 성능을 위해 지역 복제본(replica)ted 레지스트리를 구성합니다.
- 지리적으로 먼 레지스트리 복제본(replica) 끌어와 DNS 구성을 최적화합니다.
이러한 가이드는 AKS 클러스터에 대한 원활한 이미지 검색을 보장하고 워크로드의 원활한 작업을 보장하는 데 도움이 될 수 있습니다.
타사 컨테이너 레지스트리 통합
타사 컨테이너 레지스트리를 사용하는 경우 AKS 클러스터가 컨테이너 이미지에 안전하게 액세스할 수 있도록 레지스트리에 대한 적절한 ImagePullSecret
자격 증명을 만들어야 합니다. 자세한 내용은 이미지 끌어오기 비밀 만들기를 참조 하세요. 컨테이너 레지스트리에 대한 연결을 확인하고 AKS 클러스터가 배포 중에 필요한 컨테이너 이미지를 성공적으로 끌어올 수 있도록 올바른 권한 및 자격 증명을 설정했는지 확인합니다. 이 모범 사례는 Kubernetes에서 컨테이너화된 워크로드를 원활하고 안정적으로 실행하는 데 도움이 됩니다.
참가자
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
주요 작성자:
- 파올로 살바토리 | 수석 고객 엔지니어
- Francis Simy Nazareth | 선임 기술 전문가
비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.