다음을 통해 공유


AKS 클러스터 업그레이드 중 "불만족PDB" 오류 문제 해결

이 문서에서는 AKS(Azure Kubernetes Service) 클러스터를 업그레이드하려고 할 때 발생할 수 있는 "불만족할 수 없는PDB" 오류를 식별하고 해결하는 방법을 설명합니다.

필수 조건

이 문서에는 Azure CLI 버전 2.53.0 이상이 필요합니다. 설치되어 있는 버전을 확인하려면 az --version을 실행합니다. Azure CLI를 설치하거나 업그레이드해야 하는 경우 Azure CLI 설치 방법을 참조하세요.

증상

다음 오류 메시지와 함께 AKS 클러스터 업그레이드 작업이 실패합니다.

코드: 불만족PDB
메시지: 1 오류가 발생했습니다.
* PDB <pdb-namespace>/<pdb-name> 에는 maxunavailble == 0이(가) put 작업을 진행할 수 없습니다.

원인

업그레이드 작업을 시작하기 전에 AKS는 매개 변수가 0으로 설정된 기존 PDB(Pod 중단 예산) maxUnavailable 에 대해 클러스터를 확인합니다. 이러한 PDB는 노드 드레이닝 작업을 차단할 가능성이 높습니다. 노드 드레이닝 작업이 차단되면 클러스터 업그레이드 작업이 성공적으로 완료되지 않습니다. 이로 인해 클러스터가 실패할 수 있습니다.

"UnsatisfiablePDB" 오류가 수신되면 다음 명령을 실행하여 PDB의 상태를 확인할 수 있습니다.

$ kubectl get pdb <pdb-name> -n <pdb-namespace>

이 명령의 출력은 다음 명령과 유사해야 합니다.

NAME         MIN AVAILABLE   MAX UNAVAILABLE   ALLOWED DISRUPTIONS   AGE
<pdb-name>   N/A             0                 0                     49s

MAX UNAVAILABLE 이 0이면 업그레이드 프로세스 중에 노드 드레이닝이 실패합니다.

이 문제를 해결하려면 다음 솔루션 중 하나를 사용합니다.

해결 방법 1: PDB의 "maxUnavailable" 매개 변수 조정

참고 항목

PDB 리소스를 직접 편집할 수 있는 경우 이 솔루션을 사용합니다.

  1. PDB의 maxUnavailable 매개 변수를 1 값 이상으로 설정합니다. 자세한 내용은 PodDisruptionBudget 지정을 참조 하세요.
  2. AKS 클러스터 업그레이드 작업을 다시 시도합니다.

해결 방법 2: PDB 백업, 삭제 및 다시 배포

참고 항목

PDB 리소스를 직접 편집할 수 없는 경우 이 솔루션을 사용합니다.

  1. 다음 명령을 사용하여 PDB를 백업합니다.

    $ kubectl get pdb <pdb-name> -n <pdb-namespace> -o yaml > pdb_backup.yaml
    
  2. 다음 명령을 사용하여 PDB를 삭제합니다.

    $ kubectl delete pdb <pdb-name> -n <pdb-namespace>
    
  3. AKS 클러스터 업그레이드 작업을 다시 시도합니다.

  4. AKS 클러스터 업그레이드 작업이 성공하면 다음 명령을 사용하여 PDB를 다시 배포합니다.

    $ kubectl apply -f pdb_backup.yaml
    

도움을 요청하십시오.

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