AKS(Azure Kubernetes Service) 노드 이미지 업그레이드

AKS(Azure Kubernetes Service) 정기적으로 새 노드 이미지를 제공하므로 노드 이미지를 자주 업그레이드하여 최신 AKS 기능을 사용합니다. Linux 노드 이미지는 매주 업데이트되며 Windows 노드 이미지는 매월 업데이트됩니다. AKS 릴리스 정보에는 이미지 업그레이드 알림이 포함됩니다. 이러한 업데이트가 모든 지역에 배포되는 데 최대 2주가 걸릴 수 있습니다. 릴리스 추적기 에서 롤아웃 상태를 참조하세요. 노드 이미지 업그레이드를 자동으로 수행하고 계획된 유지 관리를 사용하여 예약할 수도 있습니다. 자세한 내용은 노드 OS 이미지 자동 업그레이드를 참조하세요.

AKS는 Kubernetes 버전을 변경하지 않고 유지 관리 기간 동안 노드 이미지를 자동으로 업그레이드하거나 보안 패치를 적용하는 노드 OS 자동 업그레이드 채널을 권장합니다. 노드 이미지를 수동으로 업그레이드하려면 이 문서의 지침을 따르세요. 이 문서에서는 AKS 클러스터 노드 이미지를 업그레이드하는 방법 및 Kubernetes 버전을 업그레이드하지 않고 노드 풀 이미지를 업데이트하는 방법을 보여 줍니다. 클러스터의 Kubernetes 버전을 업그레이드하는 방법에 대한 자세한 내용은 AKS 클러스터 업그레이드를 참조하세요.

중요합니다

2025년 11월 30일부터 AKS(Azure Kubernetes Service)는 더 이상 Azure Linux 2.0에 대한 보안 업데이트를 지원하거나 제공하지 않습니다. Azure Linux 2.0 노드 이미지는 202512.06.0 릴리스에 고정되어 있습니다. 2026년 3월 31일부터 노드 이미지가 제거되며 노드 풀의 크기를 조정할 수 없습니다. 노드 풀을 지원되는 Kubernetes 버전으로 업그레이드하거나 osSku AzureLinux3으로 마이그레이션하여 지원되는 Azure Linux 버전으로 마이그레이션합니다. 자세한 내용은 GitHub 서비스 종료 이슈Azure 업데이트 서비스 종료 공지를 참조하세요. 공지 사항 및 업데이트 정보를 받으려면 AKS 릴리스 노트를 팔로우하세요.

비고

NAP(노드 자동 프로비저닝)를 사용하는 클러스터는 새 이미지를 사용할 수 있을 때 노드 이미지를 자동으로 업데이트합니다. NAP에서 새 이미지를 선택하는 시기를 제어하도록 유지 관리 기간을 구성할 수 있지만, 기존 노드가 중단되는 시기를 반드시 결정하지는 않습니다. NAP의 드리프트 논리, Karpenter 노드 중단 예산 및 Pod 중단 예산은 중단이 발생하는 방법과 시기를 제어합니다. 자세한 내용은 NAP에 대한 노드 이미지 업데이트를 참조하세요.

노드 이미지 버전(예: AKSUbuntu-2404를 AKSUbuntu-2204로 또는 AKSUbuntu-2404-202601.27.0AKSUbuntu-2404-202601.13.0)으로 다운그레이드할 수 없습니다.

사전 요구 사항

  • 기존 AKS 클러스터 및 노드 풀입니다.
  • Azure CLI 설치되어 Azure 계정에 로그인됩니다.
  • 클러스터 자격 증명을 검색하고 AKS 클러스터 및 노드 풀을 읽고 업데이트할 수 있는 권한입니다.
  • Bash 셸입니다. 이 문서의 명령은 Bash 환경 변수 구문을 사용합니다.

다음 명령에서 사용할 리소스 그룹, 클러스터 및 노드 풀 이름에 대한 환경 변수를 설정합니다.

export AKS_RESOURCE_GROUP="<resource-group-name>"
export AKS_CLUSTER="<cluster-name>"
export AKS_NODEPOOL="<node-pool-name>"

AKS 클러스터에 연결

  1. az aks get-credentials 명령을 사용하여 AKS 클러스터에 연결합니다.

    az aks get-credentials \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER
    

사용 가능한 노드 이미지 업그레이드 확인

  1. az aks nodepool get-upgrades 명령을 사용하여 사용 가능한 노드 이미지 업그레이드를 확인합니다.

    az aks nodepool get-upgrades \
        --nodepool-name $AKS_NODEPOOL \
        --cluster-name $AKS_CLUSTER \
        --resource-group $AKS_RESOURCE_GROUP
    
  2. 출력에서 latestNodeImageVersion 값을 찾아 기록해 두십시오. 이 값은 노드 풀에 사용할 수 있는 최신 노드 이미지 버전입니다.

  3. 명령을 사용하여 az aks nodepool show 최신 버전과 비교하려면 현재 노드 이미지 버전을 확인합니다.

    az aks nodepool show \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --query nodeImageVersion
    
  4. nodeImageVersion 값이 latestNodeImageVersion 값과 다른 경우, 노드 이미지를 업그레이드할 수 있습니다.

모든 노드 풀에서 모든 노드 이미지 업그레이드

  1. az aks upgrade 명령과 함께 --node-image-only 플래그를 사용하여 클러스터의 모든 노드 풀에서 모든 노드 이미지를 업그레이드합니다.

    az aks upgrade \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --node-image-only \
        --yes
    
  2. kubectl get nodes 명령을 사용하여 노드 이미지의 상태를 확인할 수 있습니다.

    비고

    이 명령은 사용하는 셸에 따라 약간 다를 수 있습니다. Windows 및 PowerShell 환경에 대한 자세한 내용은 Kubernetes JSONPath 설명서 참조하세요. 이 명령은 노드의 현재 이미지 버전을 식별하는 레이블 값 kubernetes.azure.com/node-image-version 과 함께 각 노드의 이름을 나열합니다.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. 업그레이드가 완료되면 명령을 사용하여 az aks show 업데이트된 노드 풀 세부 정보를 가져옵니다. 현재 노드 이미지는 nodeImageVersion 속성에서 볼 수 있습니다.

    az aks show \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER  \
        --query "agentPoolProfiles[].{Name:name, NodeImageVersion:nodeImageVersion}"
    

특정 노드 풀 업그레이드

  1. az aks nodepool upgrade 명령을 --node-image-only 플래그와 함께 사용하여 Kubernetes 클러스터를 업그레이드하지 않고 노드 풀의 OS 이미지를 업데이트합니다.

    az aks nodepool upgrade \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --node-image-only
    
  2. kubectl get nodes 명령을 사용하여 노드 이미지의 상태를 확인할 수 있습니다.

    비고

    이 명령은 사용하는 셸에 따라 약간 다를 수 있습니다. Windows 및 PowerShell 환경에 대한 자세한 내용은 Kubernetes JSONPath 설명서 참조하세요. 이 명령은 노드의 현재 이미지 버전을 식별하는 레이블 값 kubernetes.azure.com/node-image-version 과 함께 각 노드의 이름을 나열합니다.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. 업그레이드가 완료되면 명령을 사용하여 az aks nodepool show 업데이트된 노드 풀 세부 정보를 가져옵니다. 현재 노드 이미지는 nodeImageVersion 속성에서 볼 수 있습니다.

    az aks nodepool show \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --query nodeImageVersion
    

노드 서지로 노드 이미지 업그레이드

이 절차는 클러스터의 모든 노드 풀이 아닌 특정 노드 풀에 대한 노드 이미지를 업그레이드합니다. 기본값으로 AKS는 업그레이드를 구성하는 데 하나의 추가 노드를 사용합니다. 노드 이미지 업그레이드 프로세스를 가속화하려면 사용자 지정 가능한 노드 서지 값을 사용하여 노드 이미지를 업그레이드합니다.

  1. 플래그가 있는 명령을 --max-surge 사용하여 az aks nodepool update 노드 풀에 대한 서지 노드 수를 구성합니다. 이 설정은 후속 업그레이드에 대해 유지됩니다.

    비고

    다양한 --max-surge 설정의 장단점에 대해 자세히 알아보려면 노드 서지 업그레이드 사용자 지정을 참조하세요.

    az aks nodepool update \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --max-surge 33%
    
  2. 플래그가 있는 명령을 사용하여 az aks nodepool upgrade 노드 이미지를 업그레이드합니다 --node-image-only .

    az aks nodepool upgrade \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --node-image-only
    
  3. kubectl get nodes 명령을 사용하여 노드 이미지의 상태를 확인할 수 있습니다. 이 명령은 노드의 현재 이미지 버전을 식별하는 레이블 값 kubernetes.azure.com/node-image-version 과 함께 각 노드의 이름을 나열합니다.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  4. 명령을 사용하여 업데이트된 노드 풀 세부 정보를 가져옵니다 az aks nodepool show . 현재 노드 이미지는 nodeImageVersion 속성에서 볼 수 있습니다.

    az aks nodepool show \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --query nodeImageVersion