이 문서에서는 노드 다시 설치 및 트리거 노드 재배포가 필요한 작업이 AKS(Azure Kubernetes Service) 클러스터에서 허용되는 시기를 제어하도록 노드 중단 정책을 구성하고 관리하는 방법을 보여 줍니다.
사전 요구 사항
- 노드 중단 정책 개요를 검토하여 노드 중단 정책의 작동 방식과 노드 중단 정책에서 다루는 작업을 알아봅니다.
- Azure CLI 버전 2.76.0 이상이 설치 및 구성되었습니다. CLI 버전을 찾으려면 명령을 실행합니다
az --version. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요. - 기존 AKS 클러스터 또는 노드 중단 정책이 구성된 새 클러스터를 만들 수 있습니다.
-
aks-previewAzure CLI 확장을 설치하고 노드 중단 정책 미리 보기 기능을 등록합니다.
Important
AKS 미리 보기 기능은 셀프 서비스에서 사용할 수 있습니다(옵트인 방식). 미리 보기는 "있는 그대로" 및 "사용 가능한 상태로" 제공되며 서비스 수준 계약 및 제한적 보증에서 제외됩니다. AKS 미리 보기의 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.
aks-preview Azure CLI 확장 설치
aks-preview명령을 사용하여az extension add확장을 설치합니다.az extension add --name aks-previewaz extension update명령을 사용하여 확장의 최신 버전으로 업데이트합니다.az extension update --name aks-preview
노드 중단 정책 미리 보기 기능 등록
명령을 사용하여 노드 중단 정책 미리 보기 기능을 등록합니다 az feature register .
az feature register --namespace "Microsoft.ContainerService" --name "NodeDisruptionProfile"
상태가 등록됨으로 표시되는 데 몇 분 정도 걸립니다.
새 클러스터에서 노드 중단 정책 구성
az aks create 매개 변수를 다음 정책 구성 중 하나로 설정한 --node-disruption-policy 명령을 사용하여 노드 중단 정책이 구성된 새 AKS 클러스터를 만듭니다: Allow(기본값), AllowDuringMaintenanceWindow, 또는 Block.
언제든지 중단 작업 허용(기본값)
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 3 \
--node-disruption-policy Allow \
--generate-ssh-keys
유지 관리 기간 동안에만 중단 작업 허용
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 3 \
--node-disruption-policy AllowDuringMaintenanceWindow \
--generate-ssh-keys
Important
AllowDuringMaintenanceWindow를 사용하는 경우 aksManagedNodeOSUpgradeSchedule 유지 관리 기간을 반드시 구성해야 합니다. 유지 관리 구성은 일정을 인라인으로 정의하거나 공유 유지 관리 기간에 연결할 수 있습니다. 그렇지 않으면 중단 작업이 무기한 허용됩니다. 자세한 내용은 계획된 유지 관리를 사용하여 Azure Kubernetes Service 클러스터에 대한 업그레이드를 예약하고 제어하는 방법을 참조하세요.
모든 중단 유발 작업 차단
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 3 \
--node-disruption-policy Block \
--generate-ssh-keys
기존 클러스터에서 노드 중단 정책 업데이트
az aks update 명령을 사용하여 기존 AKS 클러스터의 노드 중단 정책을 업데이트합니다. 이때 --node-disruption-policy 매개 변수를 다음 정책 구성 중 하나로 설정합니다: Allow(기본값), AllowDuringMaintenanceWindow 또는 Block.
유지 관리 기간 동안 작업을 허용하도록 정책 변경
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-disruption-policy AllowDuringMaintenanceWindow
모든 서비스 중단 작업을 차단하도록 정책을 변경합니다
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-disruption-policy Block
언제든지 작업을 허용하도록 정책을 다시 변경합니다.
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-disruption-policy Allow
노드 중단 정책 구성 확인
명령을 사용하여 노드 중단 정책 구성을 확인합니다 az aks show .
az aks show \
--resource-group myResourceGroup \
--name myAKSCluster \
--query "nodeDisruptionProfile.nodeDisruptionPolicy" \
--output tsv
출력에는 현재 정책 설정(예: Allow, AllowDuringMaintenanceWindow또는 Block.)이 표시됩니다.
차단된 작업 처리
노드 중단 정책이 중단 작업을 차단하는 경우 유지 관리 기간을 기다리 거나 정책을 일시적으로 변경할 수 있습니다.
유지 관리 기간을 기다립니다.
사용 AllowDuringMaintenanceWindow중인 경우 다음 유지 관리 기간 동안 작업을 수행하도록 예약합니다.
az aks maintenanceconfiguration list 명령을 사용하여 설정된 유지 관리 기간을 볼 수 있습니다.
az aks maintenanceconfiguration list \
--resource-group myResourceGroup \
--cluster-name myAKSCluster
일시적으로 정책 변경
Allow를az aks update로 설정한--node-disruption-policy명령을 사용하여 정책을Allow로 업데이트합니다.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-disruption-policy Allow서비스 중단 작업을 수행하세요. 다음 예제에서는
az aks update명령을 사용하여 사용자 지정 CA 인증서를 업데이트합니다.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --custom-ca-trust-certificates <path-to-certificate-file>명령을 사용하여 원래 정책을 복원합니다
az aks update. 다음 예제에서는--node-disruption-policy를Block(으)로 복원합니다:az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-disruption-policy Block
Kubernetes 1.36 이하에서 수동 노드 풀 업그레이드가 필요한 작업
Kubernetes 1.37 이상에서 노드 중단 정책은 다음과 같은 구성 변경 내용을 다룹니다. Kubernetes 1.36 및 이전 버전에서 이러한 변경 내용을 변경하려면 수동 노드 풀 업그레이드가 필요합니다.
- SSH 액세스 방법 변경 또는 SSH 공개 키 업데이트와 같은 SSH 구성 변경
- IMDS 제한을 설정하거나 해제하는 것과 같은 IMDS 제한 설정 변경
- 네트워크 격리 클러스터의 부트스트랩 프로필 ACR 이름 변경
- 클러스터 이그레스 라우팅 변경과 같은 아웃바운드 유형 변경.
Kubernetes 1.36 이하에서는 구성을 변경한 후 az aks nodepool upgrade 명령을 수동으로 실행합니다. 다음은 그 예입니다.
az aks nodepool upgrade \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name <nodepool-name> \
--node-image-only
노드 중단 정책에서 다루는 작업에 대한 자세한 내용은 노드 중단 정책 개요를 참조하세요.
노드 중단 정책 문제 해결
예기치 않게 차단된 작업
작업이 예기치 않게 차단된 경우 다음 단계를 사용하여 문제를 해결합니다.
명령을 사용하여 현재 정책 설정을 확인합니다
az aks show.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query "nodeDisruptionProfile.nodeDisruptionPolicy" \ --output tsv만약
AllowDuringMaintenanceWindow항목을 사용하고 있다면,az aks maintenanceconfiguration show명령어를 사용하여 유지 보수 기간 구성을 확인하세요.az aks maintenanceconfiguration show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name aksManagedNodeOSUpgradeSchedule현재 시간이 유지 관리 기간 내에 속하는지 확인합니다.
유지 관리 창이 구성되지 않음
정책을 AllowDuringMaintenanceWindow로 설정했지만 유지 관리 시간을 구성하지 않으면 중단을 수반하는 모든 작업이 허용됩니다.
az aks maintenanceconfiguration add 명령을 사용하여 유지 관리 시간을 구성합니다. 여러 클러스터에서 동일한 일정을 다시 사용하려면 를 aksManagedNodeOSUpgradeSchedule에 연결합니다.
az aks maintenanceconfiguration add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name aksManagedNodeOSUpgradeSchedule \
--schedule-type Weekly \
--day-of-week Sunday \
--interval-weeks 1 \
--duration 4 \
--start-time 02:00