이 문서에서는 단일 노드 풀을 업그레이드하는 방법과 AKS(Azure Kubernetes Service)에서 여러 노드 풀에 대한 클러스터 제어 평면을 업그레이드하는 방법을 알아봅니다.
비고
AKS 클러스터의 모든 노드 풀을 동일한 Kubernetes 버전으로 업그레이드하는 것이 가장 좋습니다. [az aks upgrade][az-aks-upgrade]의 기본 동작은 모든 노드 풀을 컨트롤 플레인과 함께 업그레이드하여 이 맞춤을 달성하는 것입니다. 개별 노드 풀을 업그레이드하는 기능을 사용하면 롤링 업그레이드를 수행하고 노드 풀 간에 Pod를 예약하여 애플리케이션 가동 시간을 유지할 수 있습니다.
단일 노드 풀 업그레이드
비고
노드 풀 OS(운영 체제) 이미지 버전은 클러스터의 Kubernetes 버전에 연결됩니다. 클러스터 업그레이드가 있어야만 OS 이미지 업그레이드를 받을 수 있습니다.
[][
az aks get-upgradesaz-aks-get-upgrades] 명령을 사용하여 사용 가능한 업그레이드를 확인합니다.az aks get-upgrades --resource-group <resource-group-name> --name <cluster-name>[][
az aks nodepool upgradeaz-aks-nodepool-upgrade] 명령을 사용하여 특정 노드 풀을 업그레이드합니다.az aks nodepool upgrade \ --resource-group <resource-group-name> \ --cluster-name <cluster-name> \ --name <node-pool-name> \ --kubernetes-version <kubernetes-version> \ --no-wait[][
az aks nodepool listaz-aks-nodepool-list] 명령을 사용하여 노드 풀의 상태를 확인합니다.az aks nodepool list --resource-group <resource-group-name> --cluster-name <cluster-name>다음 예제 출력은 노드 풀이 업그레이드 중 상태임을 보여줍니다.
[ { ... "count": 3, ... "name": "<node-pool-name>", "orchestratorVersion": "<kubernetes-version>", ... "provisioningState": "Upgrading", ... "vmSize": "Standard_DS2_v2", ... }, { ... "count": 2, ... "name": "<node-pool-name-2>", "orchestratorVersion": "<kubernetes-version-2>", ... "provisioningState": "Succeeded", ... "vmSize": "Standard_DS2_v2", ... } ]노드를 지정된 버전으로 업그레이드하는 데 몇 분 정도 걸립니다. 업그레이드가 완료되면 노드 풀이
provisioningStateSucceeded로 변경됩니다.
클러스터 컨트롤 플레인을 여러 노드 풀로 업그레이드
AKS 클러스터에는 Kubernetes 버전이 연결된 두 개의 클러스터 리소스 개체, 즉 클러스터 컨트롤 플레인 Kubernetes 버전과 Kubernetes 버전이 있는 노드 풀이 있습니다.
컨트롤 플레인 및 노드 풀에 대한 업그레이드 동작
컨트롤 플레인은 하나 이상의 노드 풀에 매핑됩니다. 업그레이드 작업의 동작은 사용하는 Azure CLI 명령과 지정한 플래그에 따라 달라집니다.
-
az aks upgrade는 컨트롤 플레인과 클러스터의 모든 노드 풀을 동일한 Kubernetes 버전으로 업그레이드합니다. -
az aks upgrade플래그를 사용한--control-plane-only는 클러스터 컨트롤 플레인만 업그레이드하고 모든 노드 풀은 변경되지 않습니다. -
az aks nodepool upgrade는 지정된 Kubernetes 버전을 사용하여 대상 노드 풀만 업그레이드합니다.
업그레이드 유효성 검사 규칙
비고
Kubernetes는 표준 유의적 버전 관리 버전 관리 체계를 사용합니다. 버전 번호는 x.y.z로 표시되며 x는 주 버전, y는 부 버전, z는 패치 버전입니다. 예를 들어 버전 1.12.6에서 1 은 주 버전이고 12 는 부 버전이고 6 은 패치 버전입니다. Kubernetes 버전의 컨트롤 플레인과 초기 노드 풀은 클러스터를 만드는 동안 설정됩니다. 다른 노드 풀은 클러스터에 추가될 때 Kubernetes 버전이 설정됩니다. Kubernetes 버전은 노드 풀 간에 그리고 노드 풀과 컨트롤 플레인 간에 서로 다를 수 있습니다.
클러스터 컨트롤 플레인과 노드 풀의 Kubernetes 업그레이드는 다음 규칙 세트를 사용하여 유효성이 검사됩니다.
노드 풀을 업그레이드하는 데 유효한 버전에 대한 규칙:
- 노드 풀 버전은 컨트롤 플레인과 동일한 주 버전이어야 합니다.
- 노드 풀 부 버전은 컨트롤 플레인 버전의 두 가지 부 버전 내에 있어야 합니다.
- 노드 풀 버전은 컨트롤
major.minor.patch버전보다 크면 안 됩니다.
업그레이드 작업 제출에 대한 규칙:
- 컨트롤 플레인 또는 노드 풀 Kubernetes 버전을 다운그레이드할 수 없습니다.
- 노드 풀 Kubernetes 버전을 지정하지 않으면 클라이언트에 따라 동작이 달라집니다. ARM(Azure Resource Manager) 템플릿에서 선언은 노드 풀에 대해 정의된 기존 버전으로 대체됩니다. 아무것도 설정되지 않으면 컨트롤 플레인 버전으로 돌아갑니다.
- 단일 컨트롤 플레인이나 노드 풀 리소스에서 동시에 여러 작업을 제출할 수 없습니다. 지정된 시간에 컨트롤 플레인 또는 노드 풀을 업그레이드하거나 크기를 조정할 수 있습니다.
다음 단계: AKS에서 노드 풀 관리
AKS에서 노드 풀을 관리하는 방법에 대한 자세한 내용은 AKS(Azure Kubernetes Service)에서 노드 풀 관리를 참조하세요.