AKS(Azure Kubernetes Service) 노드 이미지 업그레이드
AKS는 노드 이미지 업그레이드를 지원하여 최신 OS와 런타임 업데이트를 최신 상태로 유지합니다. AKS는 정기적으로 최신 업데이트가 포함된 새 이미지를 제공하므로 최신 AKS 기능을 위해 노드의 이미지를 정기적으로 업그레이드하는 것이 유용합니다. Linux 노드 이미지는 매주 업데이트되고 Windows 노드 이미지는 매월 업데이트됩니다. AKS 릴리스 노트를 통해 이미지 업그레이드에 대한 알림이 고객에게 제공되더라도 모든 지역에서 업데이트가 롤아웃되는 데 최대 1주일이 걸릴 수 있습니다. 이 문서에서는 AKS 클러스터 노드 이미지를 업그레이드하는 방법 및 Kubernetes 버전을 업그레이드하지 않고 노드 풀 이미지를 업데이트하는 방법을 보여줍니다.
AKS에서 제공하는 최신 이미지에 대한 자세한 내용은 AKS 릴리스 정보를 확인하세요.
클러스터의 Kubernetes 버전을 업그레이드하는 방법에 대한 자세한 내용은 AKS 클러스터 업그레이드를 참조하세요.
노드 이미지 업그레이드는 계획된 유지 관리를 사용하여 자동으로 수행되고 예약될 수도 있습니다. 자세한 내용은 노드 이미지 자동 업그레이드를 참조하세요.
참고
AKS 클러스터는 노드에 대한 가상 머신 확장 집합을 사용해야 합니다.
노드 풀이 최신 노드 이미지에 있는지 확인
다음 명령을 사용하여 노드 풀에 사용할 수 있는 최신 노드 이미지 버전을 확인할 수 있습니다.
az aks nodepool get-upgrades \
--nodepool-name mynodepool \
--cluster-name myAKSCluster \
--resource-group myResourceGroup
출력에서 아래 예제와 같은 latestNodeImageVersion
을 볼 수 있습니다.
{
"id": "/subscriptions/XXXX-XXX-XXX-XXX-XXXXX/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/nodepool1/upgradeProfiles/default",
"kubernetesVersion": "1.17.11",
"latestNodeImageVersion": "AKSUbuntu-1604-2020.10.28",
"name": "default",
"osType": "Linux",
"resourceGroup": "myResourceGroup",
"type": "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles",
"upgrades": null
}
따라서 nodepool1
에 대해 사용할 수 있는 최신 노드 이미지는 AKSUbuntu-1604-2020.10.28
입니다. 이제 다음을 실행하여 노드 풀에서 사용 중인 현재 노드 이미지 버전과 비교할 수 있습니다.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--query nodeImageVersion
출력의 예제는 다음과 같을 수 있습니다.
"AKSUbuntu-1604-2020.10.08"
따라서 이 예제에서는 현재 AKSUbuntu-1604-2020.10.08
이미지 버전에서 최신 버전 AKSUbuntu-1604-2020.10.28
로 업그레이드할 수 있습니다.
모든 노드 풀에서 모든 노드 업그레이드
노드 이미지 업그레이드는 az aks upgrade
를 통해 수행됩니다. 노드 이미지를 업그레이드하려면 다음 명령을 사용합니다.
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-image-only
업그레이드하는 동안 다음 kubectl
명령을 사용하여 노드 이미지의 상태를 확인하고 현재 노드 이미지 정보를 필터링합니다.
참고
이 명령은 사용하는 셸에 따라 약간 다를 수 있습니다. Windows/PowerShell 환경에 대한 자세한 내용은 Kubernetes JSONPath 설명서를 참조하세요.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
업그레이드가 완료되면 az aks show
를 사용하여 업데이트된 노드 풀 세부 정보를 가져옵니다. 현재 노드 이미지는 nodeImageVersion
속성에서 볼 수 있습니다.
az aks show \
--resource-group myResourceGroup \
--name myAKSCluster
특정 노드 풀 업그레이드
노드 풀에서 이미지를 업그레이드하는 것은 클러스터에서 이미지를 업그레이드하는 것과 비슷합니다.
Kubernetes 클러스터 업그레이드를 수행하지 않고 노드 풀의 OS 이미지를 업데이트하려면 다음 예제에서 --node-image-only
옵션을 사용합니다.
az aks nodepool upgrade \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--node-image-only
업그레이드하는 동안 다음 kubectl
명령을 사용하여 노드 이미지의 상태를 확인하고 현재 노드 이미지 정보를 필터링합니다.
참고
이 명령은 사용하는 셸에 따라 약간 다를 수 있습니다. Windows/PowerShell 환경에 대한 자세한 내용은 Kubernetes JSONPath 설명서를 참조하세요.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
업그레이드가 완료되면 az aks nodepool show
를 사용하여 업데이트된 노드 풀 세부 정보를 가져옵니다. 현재 노드 이미지는 nodeImageVersion
속성에서 볼 수 있습니다.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool
노드 서지로 노드 이미지 업그레이드
노드 이미지 업그레이드 프로세스의 속도를 높이려면 사용자 지정 가능한 노드 서지 값을 사용하여 노드 이미지를 업그레이드할 수 있습니다. 기본값으로 AKS는 업그레이드를 구성하는 데 하나의 추가 노드를 사용합니다.
업그레이드 속도를 높이려면 --max-surge
값을 사용하여 업그레이드에 사용할 노드 수를 구성하여 더 빨리 완료할 수 있습니다. 다양한 --max-surge
설정의 장단점에 대해 자세히 알아보려면 노드 서지 업그레이드 사용자 지정을 참조하세요.
다음 명령을 사용하면 노드 이미지 업그레이드를 수행하는 데 필요한 최대 서지 값을 설정할 수 있습니다.
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--max-surge 33% \
--no-wait
업그레이드하는 동안 다음 kubectl
명령을 사용하여 노드 이미지의 상태를 확인하고 현재 노드 이미지 정보를 필터링합니다.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
az aks nodepool show
를 사용하여 업데이트된 노드 풀 세부 정보를 가져옵니다. 현재 노드 이미지는 nodeImageVersion
속성에서 볼 수 있습니다.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool
다음 단계
- 최신 노드 이미지에 대한 자세한 내용은 AKS 릴리스 정보를 참조하세요.
- AKS 클러스터를 업그레이드하여 Kubernetes 버전을 업그레이드하는 방법을 알아봅니다.
- GitHub 작업을 사용하여 클러스터 및 노드 풀 업그레이드 자동 적용
- 다양한 노드 풀 및 여러 노드 풀 만들기 및 관리를 사용하여 노드 풀을 업그레이드하는 방법에 대해 자세히 알아보세요.