Share via


자습서: 노드를 Azure Linux로 마이그레이션

이 자습서(5부 중 3부)에서는 기존 노드를 Azure Linux로 마이그레이션합니다. 다음 방법 중 하나를 사용하여 기존 노드를 Azure Linux로 마이그레이션할 수 있습니다.

  • 기존 노드 풀을 제거하고 새 Azure Linux 노드 풀을 추가합니다.
  • 현재 위치 OS SKU 마이그레이션(미리 보기).

Azure Linux로 마이그레이션할 기존 노드가 없는 경우 다음 자습서로 건너뜁니다. 이후 자습서에서는 클러스터에서 원격 분석 및 모니터링을 사용하도록 설정하고 Azure Linux 노드를 업그레이드하는 방법을 알아봅니다.

필수 조건

  • 이전 자습서에서는 AKS 클러스터용 Azure Linux 컨테이너 호스트를 만들고 배포했습니다. 이 자습서를 완료하려면 기존 클러스터에 Azure Linux 노드 풀을 추가해야 합니다. 이 단계를 수행하지 않고 계속 진행하려면 자습서 2: 기존 AKS 클러스터에 Azure Linux 노드 풀 추가부터 시작하세요.

    참고 항목

    새 Azure Linux 노드 풀을 추가할 때 --mode System으로 하나 이상 추가해야 합니다. 추가하지 않으면 AKS에서 기존 노드 풀을 삭제할 수 없습니다.

  • 최신 버전의 Azure CLI가 필요합니다. az --version을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.

Azure Linux 노드 풀 추가 및 기존 노드 풀 제거

  1. az aks nodepool add 명령을 사용하여 새 Azure Linux 노드 풀을 추가합니다. 이 명령은 --mode System 플래그를 사용하여 클러스터에 새 노드 풀을 추가하여 시스템 노드 풀로 만듭니다. Azure Linux 클러스터에는 시스템 노드 풀이 필요합니다.

    az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --mode System --os-sku AzureLinux
    
  2. az aks nodepool delete 명령을 사용하여 기존 노드를 제거합니다.

    az aks nodepool delete --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name>
    

현재 위치 OS SKU 마이그레이션(미리 보기)

이제 표준 노드 이미지 업그레이드 프로세스를 통해 클러스터를 롤링하는 노드 풀의 OS SKU를 변경하여 기존 Ubuntu 노드 풀을 Azure Linux로 마이그레이션할 수 있습니다. 이 새로운 기능은 새 노드 풀을 만들 필요가 없습니다.

제한 사항

OS SKU 마이그레이션 요청을 차단할 수 있는 몇 가지 설정이 있습니다. 성공적인 마이그레이션을 보장하려면 다음 지침 및 제한 사항을 검토합니다.

  • OS SKU 마이그레이션 기능은 Terraform, PowerShell 또는 Azure Portal을 통해 사용할 수 없습니다.
  • OS SKU 마이그레이션 기능은 기존 노드 풀의 이름을 바꿀 수 없습니다.
  • Ubuntu 및 Azure Linux는 유일하게 지원되는 Linux OS SKU 마이그레이션 대상입니다.
  • AgentPool count 필드는 마이그레이션 중에 변경되어서는 안 됩니다.
  • UseGPUDedicatedVHD를 사용하도록 설정된 Ubuntu OS SKU는 OS SKU 마이그레이션을 수행할 수 없습니다.
  • CVM 20.04를 사용하도록 설정된 Ubuntu OS SKU는 OS SKU 마이그레이션을 수행할 수 없습니다.
  • Kata를 사용하도록 설정된 노드 풀은 OS SKU 마이그레이션을 수행할 수 없습니다.
  • Windows OS SKU 마이그레이션은 지원되지 않습니다.

필수 조건

  • aks-preview 확장을 설치합니다.
  • 구독에 OSSKUMigrationPreview 기능 플래그를 등록합니다.
  • 하나 이상의 Ubuntu 노드 풀이 있는 기존 AKS 클러스터입니다.
  • 개발/프로덕션에서 Azure Linux 클러스터를 배포하고 서비스가 정상 상태인지 확인하여 OS SKU 마이그레이션 기능을 사용하기 전에 Azure Linux 컨테이너 호스트에서 워크로드가 성공적으로 구성되고 실행되는지 확인하는 것이 좋습니다.
  • 프로덕션 클러스터에서 프로세스를 사용하기 전에 테스트/개발에서 마이그레이션 기능이 작동하는지 확인합니다.
  • 업그레이드 중에 AKS가 VM 간에 Pod를 이동할 수 있도록 Pod에 Pod 중단 예산이 충분한지 확인합니다.
  • Azure CLI 버전 0.5.172 이상이 필요합니다. az --version을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.

aks-preview 확장 설치

Important

AKS 미리 보기 기능은 셀프 서비스에서 사용할 수 있습니다(옵트인 방식). 미리 보기는 "있는 그대로" 및 "사용 가능한 상태로" 제공되며 서비스 수준 계약 및 제한적 보증에서 제외됩니다. AKS 미리 보기의 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.

  1. az extension add 명령을 사용하여 aks-preview 확장을 설치합니다.

    az extension add --name aks-preview
    
  2. az extension update 명령을 사용하여 최신 버전이 있는지 확인하려면 확장을 업데이트합니다.

    az extension update --name aks-preview
    

OSSKUMigrationPreview 기능 플래그 등록

  1. az feature register 명령을 사용하여 구독에 OSSKUMigrationPreview 기능 플래그를 등록합니다.

    az feature register --namespace Microsoft.ContainerService --name OSSKUMigrationPreview
    
  2. az feature list 명령을 사용하여 등록 상태를 확인합니다.

    az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/OSSKUMigrationPreview')].{Name:name,State:properties.state}"
    

    출력은 다음 예제 출력과 비슷하게 됩니다.

    Name                                            State
    ----------------------------------------------  -------
    Microsoft.ContainerService/OSSKUMigrationPreview  Registered
    
  3. az provider register 명령을 사용하여 OSSKUMigrationPreview 기능 플래그의 등록을 새로 고칩니다.

    az provider register --namespace Microsoft.ContainerService
    

Ubuntu 노드 풀의 OS SKU 마이그레이션

  • az aks nodepool update 명령을 사용하여 노드 풀의 OS SKU를 Azure Linux로 마이그레이션합니다. 이 명령은 노드 풀의 OS SKU를 Ubuntu에서 Azure Linux로 업데이트합니다. OS SKU 변경은 즉시 업그레이드 작업을 트리거하며 완료하는 데 몇 분 정도 걸립니다.

    az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --os-sku AzureLinux
    

    참고 항목

    OS SKU 마이그레이션 중에 문제가 발생하면 이전 OS SKU로 롤백할 수 있습니다.

OS SKU 마이그레이션 확인

테스트 클러스터에서 마이그레이션이 완료되면 성공적인 마이그레이션을 위해 다음 사항을 확인해야 합니다.

  • 마이그레이션 대상이 Azure Linux인 경우 kubectl get nodes -o wide 명령을 실행합니다. 출력에는 CBL-Mariner/Linux가 OS 이미지로 표시되고 .cm2가 커널 버전 끝에 표시되어야 합니다.
  • kubectl get pods -o wide -A 명령을 실행하여 모든 Pod 및 디먼 세트가 새 노드 풀에서 실행되고 있는지 확인합니다.
  • kubectl get nodes --show-labels 명령을 실행하여 업그레이드된 노드 풀의 모든 노드 레이블이 예상한 것과 같은지 확인합니다.

프로덕션 클러스터를 마이그레이션하기 전에 몇 주 동안 서비스의 상태를 모니터링하는 것이 좋습니다.

프로덕션 클러스터에서 OS SKU 마이그레이션 실행

  1. OSSKU=AzureLinux를 설정하도록 기존 템플릿을 업데이트합니다. ARM 템플릿에서는 agentPoolProfile 섹션에 "OSSKU: "AzureLinux"를 사용합니다. Bicep에서는 agentPoolProfile 섹션에 osSku: "AzureLinux"를 사용합니다. apiVersion2023-07-01 이상으로 설정되어 있는지 확인합니다.
  2. 클러스터용 ARM 템플릿을 다시 배포하여 새 OSSKU 설정을 적용합니다. 이 배포 중에 클러스터는 노드 이미지 업그레이드를 수행하는 것처럼 동작합니다. 클러스터의 용량이 급증한 다음, 기존 노드를 새 OS SKU의 최신 AKS 이미지로 하나씩 재부팅합니다.

롤백

OS SKU 마이그레이션 중에 문제가 발생하면 이전 OS SKU로 롤백할 수 있습니다. 이렇게 하려면 템플릿에서 OS SKU 필드를 변경하고 배포를 다시 제출해야 합니다. 그러면 다른 업그레이드 작업이 트리거되고 노드 풀이 이전 OS SKU로 복원됩니다.

  • az aks nodepool update 명령을 사용하여 이전 OS SKU로 롤백합니다. 이 명령은 노드 풀의 OS SKU를 Azure Linux에서 다시 Ubuntu로 업데이트합니다.

    az aks nodepool update --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --os-sku Ubuntu
    

다음 단계

이 자습서에서는 다음 방법 중 하나를 사용하여 기존 노드를 Azure Linux로 마이그레이션했습니다.

  • 기존 노드 풀을 제거하고 새 Azure Linux 노드 풀을 추가합니다.
  • 현재 위치 OS SKU 마이그레이션(미리 보기).

다음 자습서에서는 원격 분석을 사용하도록 설정하여 클러스터를 모니터링하는 방법을 알아봅니다.