AKS 클러스터 만들기 문제의 기본 문제 해결

이 문서에서는 AKS(Microsoft Azure Kubernetes Service) 클러스터를 성공적으로 만들거나 배포할 수 없는 경우 사용할 기본 문제 해결 방법을 간략하게 설명합니다.

필수 구성 요소

Azure CLI에서 오류 보기

Azure CLI를 사용하여 클러스터를 만들 때 작업이 실패하면 오류가 출력으로 기록됩니다. 명령, 사용자 입력 및 작업 출력이 Bash 콘솔에 표시되는 방법은 다음과 같습니다.

$ az aks create --resource-group myResourceGroup \
> --name MyManagedCluster \
> --load-balancer-sku standard \
> --vnet-subnet-id /subscriptions/01234567-89ab-cdef-0123-456789abcdef/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/aks_demo_vnet/subnets/AKS

It is highly recommended to use USER assigned identity (option --assign-identity) when you want to bring you own subnet, which will have no latency for the role assignment to take effect. When you SYSTEM assigned identity, azure-cli will grant Network Contributor role to the system assigned identity after the cluster is created, and the role assignment will take some time to take effect, see https://learn.microsoft.com/azure/aks/use-managed-identity, proceed to create cluster with system assigned identity? (y/N): y

(ControlPlaneAddOnsNotReady) Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj

Code: ControlPlaneAddOnsNotReady

Message: Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj

이러한 오류에는 종종 클러스터 만들기에서 무엇이 잘못되었는지에 대한 자세한 설명이 포함되어 있으며, 자세한 내용을 포함하는 문서에 대한 링크를 제공합니다. 또한 Azure CLI 작업에서 생성하는 오류에 따라 문제 해결 문서를 참조로 사용할 수 있습니다.

Azure Portal 오류 세부 정보 보기

Azure Portal 오류에 대한 세부 정보를 보려면 Azure 활동 로그를 검사합니다. Azure Portal 활동 로그 목록을 찾으려면 활동 로그를 검색합니다. 또는 알림 (종 아이콘)을 선택한 다음 활동 로그에서 기타 이벤트를 선택합니다.

활동 로그 페이지의 로그 목록에는 작업 이름 열 값의 이름이 관리형 클러스터 만들기 또는 업데이트인 줄 항목이 포함되어 있습니다. 열 값 에 의해 시작된 해당 이벤트는 회사 또는 학교 계정의 이름으로 설정됩니다. 작업이 성공하면 상태 열 값에 수락됨이 표시됩니다. 클러스터 구성 요소를 만들기 위한 하위 작업 항목(예: 다음 작업 이름)도 표시됩니다.

  • 경로 테이블 만들기 또는 업데이트
  • 네트워크 보안 그룹 만들기 또는 업데이트
  • 사용자 할당 ID 만들기 업데이트
  • Load Balancer 만들기 또는 업데이트
  • 공용 IP 주소 만들기 또는 업데이트
  • 역할 할당 만들기
  • 리소스 그룹 업데이트

이러한 하위 작업 항목에서 상태 값은 성공이고 필드에 의해 시작된 이벤트는AzureContainerService로 설정됩니다.

대신 오류가 발생하면 어떻게 해야 할까요? 이 경우 관리형 클러스터 만들기 또는 업데이트 작업 상태 필드에 실패가 표시됩니다. 클러스터 구성 요소를 만드는 작업과 달리 여기서는 실패한 작업 항목을 확장하여 하위 작업 항목을 검토해야 합니다. 일반적인 하위 작업 이름은 '감사' 정책 작업 및 'auditIfNotExists' 정책 작업과 같은 정책 작업입니다. 일부 하위 작업에서는 성공했음을 계속 보여 줍니다.

자세히 조사하려면 실패한 하위 운용 중 하나를 선택할 수 있습니다. 하위 운용에 대한 자세한 정보를 검토할 수 있도록 측면 창이 열립니다. 요약, JSON변경 기록과 같은 필드에 대한 값 문제를 해결할 수 있습니다. JSON 필드에는 오류에 대한 출력 텍스트가 JSON 형식이며 일반적으로 가장 유용한 정보를 제공합니다.

클러스터 인사이트 보기

클러스터가 Azure Portal 만들어졌나요? 이 경우 문제를 해결하는 데 도움이 되는 클러스터 인사이트를 생성할 수 있습니다. 이 기능에 액세스하려면 다음 단계를 수행합니다.

  1. Azure PortalKubernetes 서비스를 검색하여 선택합니다.

  2. AKS 클러스터의 이름을 선택합니다.

  3. AKS 클러스터 페이지의 탐색 창에서 문제 진단 및 해결을 선택합니다.

  4. 문제 진단 및 해결 페이지에서 클러스터 인사이트 링크를 선택합니다. 클러스터 인사이트 도구는 클러스터를 분석한 다음 Cluster Insights 페이지의 관찰 및 솔루션 섹션에서 해당 결과 목록을 제공합니다.

  5. 결과 중 하나를 선택하여 문제 및 가능한 해결 방법에 대한 자세한 정보를 확인합니다.

Azure Portal 리소스 보기

Azure Portal 클러스터를 빌드할 때 만들어진 리소스를 볼 수 있습니다. 일반적으로 이러한 리소스는 MC_ 시작하는 리소스 그룹에 있습니다. 관리형 클러스터 리소스 그룹에는 MC_MyResourceGroup_MyManagedCluster_<location-code>와 같은 이름이 있을 수 있습니다. 그러나 사용자 지정 관리형 클러스터 리소스 그룹을 사용하여 클러스터를 빌드한 경우 이름이 다를 수 있습니다.

리소스 그룹을 찾으려면 Azure Portal 리소스 그룹을 검색하여 선택한 다음 클러스터가 만들어진 리소스 그룹을 선택합니다. 리소스 목록은 리소스 그룹의 개요 페이지에 표시됩니다.

경고

MC_ 리소스 그룹에서 리소스를 수정하지 않는 것이 좋습니다. 이 작업을 수행하면 AKS 클러스터에 원치 않는 영향을 줄 수 있습니다.

가상 머신 확장 집합의 상태 검토하려면 리소스 그룹의 리소스 목록에서 확장 집합 이름을 선택할 수 있습니다. aks-nodepool1-12345678-vmss와 비슷한 이름이 있을 수 있으며 가상 머신 확장 집합형식 값이 있을 수 있습니다. 확장 집합의 상태 노드 풀 개요 페이지의 맨 위에 표시되며 자세한 내용은 Essentials 제목에 표시됩니다. 배포에 실패한 경우 표시된 상태 실패합니다.

모든 리소스에 대해 세부 정보를 검토하여 배포가 실패한 이유를 더 잘 이해할 수 있습니다. 확장 집합의 경우 실패한 상태 텍스트를 선택하여 실패에 대한 세부 정보를 볼 수 있습니다. 세부 정보는 상태, 수준코드 열을 포함하는 행에 있습니다. 다음 예제에서는 열 값의 행을 보여 주는 예제입니다.

예제 값
상태 프로비전 실패
수준 오류
코드 ProvisioningState/failed/VMExtensionProvisioningError

행을 선택하여 메시지 필드를 확인합니다. 여기에는 해당 실패에 대한 더 많은 정보가 포함됩니다. 예를 들어 예제 행의 메시지 필드는 다음 텍스트에서 시작됩니다.

확장 'vmssCSE'를 처리할 때 VM에서 오류를 보고했습니다. 오류 메시지: "사용 실패: 명령을 실행하지 못했습니다. 종료 상태=50 [stdout] [stderr] 0 0 0 --으로 종료된 명령:

이 정보로 무장하면 확장 집합의 VM이 실패하고 생성된 종료 상태 50으로 결론을 내릴 수 있습니다.

참고

클러스터 배포가 이러한 리소스를 만든 지점에 도달하지 않은 경우 Azure Portal 관리형 클러스터 리소스 그룹을 검토하지 못할 수 있습니다.

Kubectl 명령 사용

클러스터의 오류를 해결하는 데 도움이 되는 다른 옵션은 kubectl 명령을 입력하여 클러스터에 배포된 리소스에 대한 세부 정보를 가져옵니다. kubectl을 사용하려면 먼저 AKS 클러스터에 로그인합니다.

az aks get-credentials --resource-group MyResourceGroup --name MyManagedCluster

오류 유형 및 발생한 시기에 따라 클러스터에 로그인하여 자세한 내용을 확인할 수 없을 수 있습니다. 그러나 일반적으로 클러스터가 만들어지고 Azure Portal 표시되는 경우 로그인하고 kubectl 명령을 실행할 수 있어야 합니다.

클러스터 노드 보기(kubectl get nodes)

노드의 상태를 확인하는 자세한 내용을 보려면 kubectl get nodes 명령을 입력하여 클러스터 노드를 확인합니다. 이 예제에서는 클러스터에서 보고하는 노드가 없습니다.

$ kubectl get nodes

No resources found

시스템 네임스페이스에서 Pod 보기(kubectl get Pod)

kube-system 네임스페이스에서 Pod를 보는 것도 문제를 해결하는 좋은 방법입니다. 이 메서드를 사용하면 Kubernetes 시스템 Pod의 상태 볼 수 있습니다. 이 예제에서는 명령을 입력합니다.kubectl get pods

$ kubectl get pods -n kube-system
NAME                                  READY   STATUS    RESTARTS   AGE
coredns-845757d86-7xjqb               0/1     Pending   0          78m
coredns-autoscaler-5f85dc856b-mxkrj   0/1     Pending   0          77m
konnectivity-agent-67f7f5554f-nsw2g   0/1     Pending   0          77m
konnectivity-agent-8686cb54fd-xlsgk   0/1     Pending   0          65m
metrics-server-6bc97b47f7-dfhbr       0/1     Pending   0          77m

Pod의 상태 설명(kubectl describe Pod)

Pod의 상태 설명하여 구성 세부 정보 및 Pod에서 발생한 모든 이벤트를 볼 수 있습니다. kubectl describe pod 명령을 실행합니다.

$ kubectl describe pod coredns-845757d86-7xjqb -n kube-system
Name:                 coredns-845757d86-7xjqb
Namespace:            kube-system
Priority:             2000001000
Priority Class Name:  system-node-critical
Node:                 <none>
Labels:               k8s-app=kube-dns
                      kubernetes.io/cluster-service=true
                      pod-template-hash=845757d86
                      version=v20
...
Events:
  Type     Reason            Age                 From               Message
  ----     ------            ----                ----               -------
  Warning  FailedScheduling  24m (x1 over 25m)   default-scheduler  no nodes available to schedule pods
  Warning  FailedScheduling  29m (x57 over 84m)  default-scheduler  no nodes available to schedule pods

명령 출력에서 사용할 수 있는 노드가 없으므로 Pod가 노드에 배포할 수 없음을 확인할 수 있습니다.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.