AKS(Azure Kubernetes Service) 노드 풀 버전 롤백

AKS(Azure Kubernetes Service) 노드 풀 버전 롤백 기능을 사용하면 Kubernetes 업그레이드 후 예기치 않은 동작에서 복구할 수 있습니다. 문제가 발생하면 노드 풀을 이전 Kubernetes 버전 및 노드 이미지 조합으로 롤백하여 비즈니스 연속성을 보장하고 가동 중지 시간을 최소화할 수 있습니다. 이 문서에서는 롤백 기능, 해당 기능 및 제한 사항 및 롤백 후 작업에 대한 모범 사례를 사용하는 시기와 방법을 설명합니다.

필수 조건

  • Azure CLI 버전 2.88.0 이상. az --version 명령을 사용하여 사용자의 버전을 찾으세요. 설치하거나 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요. aks-preview 확장은 필요하지 않습니다.
  • API 버전 2026-04-01 이상.

노드 풀 버전 롤백에 지원되는 기능

노드 풀 버전 롤백 기능은 다음 기능을 지원합니다.

특징 Description
버전 되돌리기 Kubernetes 및 노드 이미지 버전을 모두 이전 상태로 복원합니다.
수동 트리거, 자동 실행 롤백을 수행하려면 수동 시작이 필요하지만 트리거되면 시스템은 추가 개입 없이 전체 롤백 프로세스를 자동으로 처리합니다.
노드 풀 호환성 VM(가상 머신) 풀과 VMSS(Virtual Machine Scale Sets) 기반 노드 풀을 포함하여 모든 유형의 노드 풀에서 작동합니다.
운영 체제 지원 Ubuntu, Azure Linux 및 Windows 풀을 비롯한 모든 OS(운영 체제) SKU(스톡 키핑 단위)와 호환됩니다.
간소화된 프로세스 스냅샷 관리가 필요하지 않습니다.

노드 풀 롤백 제한 사항 및 고려 사항

노드 풀 롤백 기능을 사용할 때는 다음과 같은 제한 사항에 유의하세요.

  • 버전 변경으로만 제한됩니다. 다른 노드 풀 변경 내용은 되돌리지 않습니다.
  • 롤백하는 동안 동시 작업이 허용되지 않습니다.
  • 롤백하기 전에 Kubernetes 자동 업그레이드 채널을 사용하지 않도록 설정해야 합니다. 노드 OS 업그레이드 채널을 사용하도록 설정하면 Kubernetes 버전 롤백이 진행될 수 있지만 이전 노드 이미지는 복원되지 않을 수 있습니다. Kubernetes 버전 및 노드 이미지를 모두 롤백해야 하는 경우 노드 OS 업그레이드 채널을 사용하지 않도록 설정합니다.
  • 업그레이드 완료 후 7일 동안만 사용할 수 있습니다.
  • 여러 버전으로 돌아가기 위해 연속 롤백을 수행할 수 없습니다.
  • 롤백은 OS SKU 변경 내용 되돌리기 기능을 지원하지 않습니다. 노드 풀의 OS SKU(예: Ubuntu에서 Azure Linux로)를 변경한 경우 롤백은 다른 OS SKU에 속하고 거부되는 이전 노드 이미지 버전을 복원하려고 시도합니다. OS SKU 변경을 되돌리려면 대신 명령을 사용합니다 az aks nodepool update --os-sku .

노드 풀 롤백을 사용할 때는 다음 사항을 고려해야 합니다.

보안 의미 운영 고려 사항
* 취약성 노출: 롤백하면 최신 버전에서 보안 패치 및 업데이트가 제거됩니다. 따라서 문제를 해결하는 동안에는 일시적으로만 롤백을 사용한 다음 가능한 한 빨리 다시 업그레이드하는 것이 좋습니다. * 서비스 중단: 롤백 프로세스로 인해 임시 워크로드 중단이 발생할 수 있습니다.
* 리소스 가용성: 롤백 작업에 충분한 용량을 보장합니다.
* 테스트 요구 사항: 업그레이드를 다시 시도하기 전에 기본 문제를 해결하도록 계획합니다.

롤백을 사용하는 이유

롤백은 프로덕션 환경에 중요한 복구 메커니즘을 제공합니다.

  • 비즈니스 연속성: 업그레이드로 인해 예기치 않은 문제가 발생할 때 가동 중지 시간 최소화
  • 위험 완화: 복잡한 복구 절차 없이 정상으로 알려진 구성을 신속하게 복원
  • 간소화된 복구: 백업에서 수동 개입 또는 클러스터 다시 빌드 방지

노드 풀 롤백을 사용하는 경우

다음 시나리오에서 복구 옵션으로 롤백을 고려합니다.

  • 업그레이드 실패 발생: 인프라 문제, 리소스 제약 조건 또는 호환성 문제로 인해 성공적인 업그레이드가 방지됩니다.
  • 애플리케이션 중단: 워크로드는 최신 Kubernetes 버전으로 심각한 오류 또는 데이터 손상을 경험합니다.
  • 성능 저하: 새 버전으로 인해 허용할 수 없는 대기 시간, 처리량 문제 또는 리소스 소비가 발생합니다.
  • 테스트 격차 발생: 사전 제작 테스트에서 발견되지 않은 문제가 운영 환경에서 나타납니다.

노드 풀 롤백 워크플로

다음 다이어그램에서는 노드 풀 롤백 워크플로를 보여 줍니다.

노드 풀 롤백 워크플로를 보여 주는 다이어그램

롤백 프로세스는 노드 풀의 모든 노드를 이전 버전 상태로 복원합니다. 워크플로의 주요 측면은 다음과 같습니다.

  • 전부 혹은 전무 접근법: 롤백이 성공적으로 완료되려면 모든 노드는 이전 버전으로 성공적으로 되돌아가야 합니다. 노드가 롤백에 실패하면 업그레이드 작업과 유사하게 클러스터의 상태를 명확하게 전달하기 위해 전체 작업이 실패합니다.
  • 프로그 추적: 작업 기록에 Azure 활동 로그를 사용하여 롤백 상태를 모니터링하고 실시간 업데이트를 위해 작업 상태 API를 모니터링합니다.

노드 풀 버전 되돌리기

중요합니다

노드 풀 버전을 롤백할 때 다음 정보를 염두에 두어야 합니다.

  • 이전 버전을 장기적으로 유지하면 보안 위험이 증가하고 결국 버전 기울이기 제한으로 인해 업그레이드를 방지할 수 있습니다. 롤백을 영구 솔루션이 아닌 임시 복구 메커니즘으로 처리합니다.
  • 롤백은 노드 풀의 노드를 대체하고 워크로드에 일시적으로 영향을 줄 수 있습니다. 시작하기 전에 워크로드에 충분한 용량이 있고 Pod 중단 예산에서 필요한 노드 중단을 허용하는지 확인하세요.
  • REST API를 사용하는 경우 먼저 Agent Pools - Get Upgrade Profile API를 호출하여 최근에 사용한 버전을 검색할 수 있습니다. 이 정보를 사용하여 롤백 요청에서 대상 버전을 지정합니다.

Azure CLI 롤백 명령은 N-1이라고도 하는 가장 최근에 기록된 버전을 자동으로 선택합니다. 명령을 사용하여 임의의 Kubernetes 또는 노드 이미지 버전을 선택할 수 없으며, 연속 롤백을 수행하여 여러 이전 버전을 순차적으로 거칠 수 없습니다.

  1. 클러스터의 자동 업그레이드 구성을 검토합니다.

    az aks show \
        --name myAKSCluster \
        --resource-group myResourceGroup \
        --query autoUpgradeProfile
    

    롤백하기 전에 Kubernetes 자동 업그레이드 채널을 비활성화하세요. 이전 노드 이미지를 복원해야 하는 경우 노드 OS 업그레이드 채널도 비활성화하세요.

  2. az aks nodepool get-rollback-versions 명령을 사용하여 사용 가능한 롤백 대상을 검토합니다.

    az aks nodepool get-rollback-versions \
        --name myNodePool \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster
    

    명령이 버전을 반환하지 않으면 노드 풀에 적격 롤백 대상이 없습니다. 노드 풀은 이전 7일 이내에 업그레이드되었어야 하며, 기록된 Kubernetes 버전은 AKS에서 계속 지원되어야 합니다.

  3. az aks nodepool rollback 명령을 사용하여 노드 풀을 롤백합니다.

    az aks nodepool rollback \
        --name myNodePool \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster
    
  4. 롤백이 완료된 후 Kubernetes 버전, 노드 이미지 버전 및 프로비저닝 상태를 확인합니다.

    az aks nodepool show \
        --name myNodePool \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --query '{provisioningState:provisioningState,kubernetesVersion:currentOrchestratorVersion,nodeImageVersion:nodeImageVersion}'
    

    성공적인 롤백은 provisioningState에 대해 Succeeded를 반환하고 기록된 Kubernetes 및 노드 이미지 버전을 표시합니다.

롤백 전에 클러스터의 자동 업그레이드 설정을 변경한 경우 업그레이드 문제를 조사하고 해결한 후 의도한 설정을 복원합니다.

노드 풀 롤백 상태 모니터링

다음 메서드를 사용하여 노드 풀 롤백 작업의 상태를 모니터링하고 성공적인 롤백의 유효성을 검사할 수 있습니다.

노드 풀 롤백 문제 해결하기

다음 표에서는 일반적인 롤백 문제와 해결 방법을 설명합니다.

Issue 원인 및 해결 방법
롤백 버전은 반환되지 않습니다. 노드 풀에 기록된 업그레이드가 없거나, 7일 롤백 기간이 만료되었거나, 이전 Kubernetes 버전이 더 이상 지원되지 않을 수 있습니다. 노드 풀의 업그레이드 기록 및 AKS Kubernetes 버전 지원 정책을 확인합니다.
AKS는 다른 작업이 진행 중이라고 보고합니다. 롤백을 다시 시도하기 전에 현재 클러스터 또는 노드 풀 작업이 완료될 때까지 기다립니다. 작업을 중지해야 하는 경우 az aks nodepool operation-abort 명령을 사용합니다.
Kubernetes 버전은 롤백되지만 노드 이미지는 롤백되지 않습니다. 노드 OS 업그레이드 채널이 사용 설정되어 있을 수 있습니다. 이전 노드 이미지를 복원해야 하는 경우 채널을 비활성화합니다.
AKS는 이전 노드 이미지 버전을 거부합니다. 기록된 버전 이후 노드 풀의 OS SKU가 변경되었을 수 있습니다. 롤백은 OS SKU 변경 내용 되돌리기 기능을 지원하지 않습니다. 대신 az aks nodepool update --os-sku를 사용하여 OS SKU를 되돌리세요.
AKS는 이전 Kubernetes 버전을 지원하지 않습니다. 기록된 버전은 더 이상 지원되지 않을 수 있습니다. AKS Kubernetes 버전 지원 정책을 확인합니다.

롤백 후 모범 사례

노드 풀을 성공적으로 롤백한 후 다음 모범 사례를 사용하여 안정성과 보안을 보장합니다.

  • 근본 원인 조사: 다른 업그레이드를 시도하기 전에 업그레이드가 실패한 이유를 확인합니다. 애플리케이션 로그, 리소스 메트릭 및 호환성 요구 사항을 검토합니다.
  • 비프로덕션에서 테스트: 프로덕션을 다시 업그레이드하기 전에 개발 또는 스테이징 환경에서 최신 버전의 유효성을 검사하여 문제를 재현하고 해결합니다.
  • 다시 업그레이드 계획: 롤백된 버전을 무기한 유지하지 마세요. 보안 패치 및 지원을 유지하도록 다시 업그레이드를 예약합니다.
    • 중요한 보안 문제의 경우: 수정 사항의 유효성을 검사한 후 며칠 내에 다시 업그레이드합니다.
    • 애플리케이션 호환성 문제의 경우: 코드 조정 후 몇 주 이내에 다시 업그레이드합니다.
    • 최대 권장 기간: 보안 취약성이 누적되지 않도록 30일입니다.

FAQ(질문과 대답)

노드 풀 롤백 중에 다른 작업을 수행할 수 있나요?

아니요, 롤백은 다른 작업을 시작하기 전에 완료해야 합니다. 다른 작업을 수행하려면 먼저 롤백을 중단합니다.

노드 풀 롤백이 Kubernetes 버전과 노드 이미지를 모두 되돌려야 합니까?

예, 롤백은 가장 최근에 사용한 Kubernetes 버전 및 해당 노드 이미지로 되돌아갑니다. 두 구성 요소가 모두 변경되면 시스템은 이전 Kubernetes 버전을 해당 버전의 마지막 호환 노드 이미지로 복원합니다.

노드 풀 버전을 변경하지 않고 노드 이미지만 롤백할 수 있나요?

예, 노드 풀 버전을 업그레이드하지 않고 지난 7일 이내에 노드 이미지 업데이트만 수행한 경우 롤백은 동일한 Kubernetes 버전을 유지하면서 이전 VHD(가상 하드 디스크) 이미지를 복원합니다.

지원 되지 않는 버전으로 롤백할 수 있나요?

아니요, AKS에서 더 이상 지원되지 않는 Kubernetes 버전으로 롤백할 수 없습니다. 예를 들어 노드 풀이 버전 1.27.9(현재 지원되지 않음)에 있고 1.28.5로 업그레이드한 경우 지원되는 버전 목록에 더 이상 없으므로 1.27.9로 롤백할 수 없습니다. 항상 AKS Kubernetes 버전 지원 정책을 확인하여 버전 가용성을 확인합니다.

같은 이유로 플랫폼에 의해 시작된 업그레이드를 롤백할 수 없습니다. AKS가 지원되지 않는 버전에서 벗어나 클러스터를 업그레이드하면 이전 버전을 더 이상 사용할 수 없습니다.

노드 풀 롤백을 수행하기 전에 자동 업그레이드를 사용하지 않도록 설정해야 하나요?

예, 롤백을 수행하기 전에 Kubernetes 자동 업그레이드 채널을 사용하지 않도록 설정해야 합니다. 노드 OS 업그레이드 채널만 사용하도록 설정하면 Kubernetes 버전 롤백이 진행될 수 있지만 이전 노드 이미지는 복원되지 않을 수 있습니다. Kubernetes 버전 및 노드 이미지를 모두 롤백해야 하는 경우 노드 OS 업그레이드 채널을 사용하지 않도록 설정합니다.

클러스터가 Azure Kubernetes Fleet Manager 자동 업그레이드 프로필의 업데이트 그룹에 포함된 경우, 롤백을 수행하기 전에 업데이트 그룹에서 클러스터를 제거해야 합니다. 그렇지 않으면 자동 업그레이드 프로세스는 롤백이 완료된 후 노드 풀을 자동으로 다시 업그레이드할 수 있습니다.

OS SKU를 변경한 후 롤백할 수 있나요(예: Ubuntu에서 Azure Linux로)?

아니요. 노드 풀 롤백은 버전 변경으로 제한되며 OS SKU 변경 내용을 되돌리지 않습니다. 한 OS SKU에서 다른 OS SKU로 마이그레이션한 후(예: Ubuntu에서 Azure Linux로) 이전 노드 이미지 버전은 이전 OS SKU에 속하며 현재 구성과 호환되지 않습니다. 롤백 작업은 다음과 유사한 오류와 함께 이전 이미지 버전을 거부합니다.

NodeImageVersion 'AKSUbuntu-2204gen2containerd-202602.13.5' is not accepted. NodeImageVersion can only be current version 'AKSAzureLinux-V3gen2-202602.13.5' or 'latest'

OS SKU를 되돌리려면 az aks nodepool update 명령과 --os-sku 매개 변수를 사용합니다. 자세한 내용은 OS 버전 롤백을 참조하세요.

AKS의 노드 풀 업그레이드에 대한 자세한 내용은 다음 문서를 참조하세요.