다음을 통해 공유


자습서: OS Guard를 사용하여 Azure Linux로 노드 마이그레이션(미리 보기)

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

  • 기존 노드 풀을 제거하고 OS Guard 노드 풀을 사용하여 새 Azure Linux를 추가합니다.
  • 현재 위치 OS SKU 마이그레이션.

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

고려사항 및 제한사항

시작하기 전에 OS Guard(미리 보기)를 사용하여 Azure Linux에 대한 다음 고려 사항 및 제한 사항을 검토합니다.

  • OS Guard를 사용하는 Azure Linux에는 Kubernetes 버전 1.32.0 이상이 필요합니다.
  • OS Guard 이미지가 있는 모든 Azure Linux에는 FIPS(Federal Information Process Standard)신뢰할 수 있는 시작이 활성화되어 있습니다.
  • Azure CLI 및 ARM 템플릿은 미리 보기에서 AKS에서 OS Guard를 사용하는 Azure Linux에 대해 유일하게 지원되는 배포 방법입니다. PowerShell 및 Terraform은 지원되지 않습니다.
  • Arm64 이미지는 미리 보기로 AKS의 OS Guard를 사용하는 Azure Linux에서 지원되지 않습니다.
  • NodeImageNone 는 OS Guard 상태의 AKS에서 Azure Linux에 대해 유일하게 지원되는 OS 업그레이드 채널입니다. UnmanagedSecurityPatch는 변경할 수 없는 /usr 디렉터리로 인해 OS Guard가 포함된 Azure Linux와 호환되지 않습니다.
  • 아티팩트 스트리밍 은 지원되지 않습니다.
  • Pod 샌드박싱 은 지원되지 않습니다.
  • CVM(기밀 가상 머신) 은 지원되지 않습니다.
  • Gen 1 VM(가상 머신) 은 지원되지 않습니다.

필수 조건

aks-preview Azure CLI 확장 설치

중요합니다

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

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

    az extension add --name aks-preview
    
  • az extension update 명령을 사용하여 확장의 최신 버전으로 업데이트합니다.

    az extension update --name aks-preview
    

Azure Linux OS Guard 미리 보기 기능 플래그 등록

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

    az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    

    상태가 Registered로 표시되는 데 몇 분 정도 걸립니다.

  2. 또한 az feature show 명령을 사용하여 등록 상태를 확인합니다.

    az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    
  3. 상태가 등록됨으로 표시되면, az provider register 명령을 사용하여 Microsoft.ContainerService 리소스 공급자의 등록을 갱신합니다.

    az provider register --namespace "Microsoft.ContainerService"
    

OS Guard 노드 풀을 사용하여 Azure Linux 추가 및 기존 노드 풀 제거

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

    # Declare environment variables with a random suffix for uniqueness
    export RANDOM_SUFFIX=$(openssl rand -hex 3)
    export NODE_POOL_NAME="np$RANDOM_SUFFIX"
    az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm
    

    예제 출력:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool",
      "name": "systempool",
      "provisioningState": "Succeeded"
    }
    
  2. az aks nodepool delete 명령을 사용하여 기존 노드를 제거합니다.

    az aks nodepool delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME 
    

현재 위치 OS SKU 마이그레이션에 대한 제한 사항

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

  • OS SKU 마이그레이션 기능은 PowerShell 또는 Azure Portal을 통해 사용할 수 없습니다. OS Guard(미리 보기)와 함께 Azure Linux에서 OS SKU 마이그레이션 기능을 사용하는 경우 Terraform, PowerShell 또는 Azure Portal을 통해 사용할 수 없습니다.
  • OS SKU 마이그레이션 기능은 기존 노드 풀의 이름을 바꾸는 것을 지원하지 않습니다.
  • OS Guard를 사용하는 Ubuntu, Azure Linux 및 Azure Linux는 유일하게 지원되는 Linux OS SKU 마이그레이션 대상입니다.
  • OS Guard를 사용하는 Azure Linux에는 기본적으로 신뢰할 수 있는 시작이 필요합니다. OS Guard를 사용하여 Azure Linux로 마이그레이션하려면 신뢰할 수 있는 시작을 사용하도록 설정해야 합니다. 이렇게 하려면 새 노드 풀을 만들어야 할 수 있습니다.
  • OS Guard에서 Azure Linux를 사용하도록 설정하는 경우 FIPS가 필요합니다. 현재 FIPS 이미지를 사용하지 않는 경우 --enable-fips를 노드 풀 업데이트 명령에 포함할 수 있습니다.
  • Gen 1 VM(가상 머신) 은 지원되지 않습니다.
  • UseGPUDedicatedVHD를 사용하도록 설정된 Ubuntu OS SKU는 OS SKU 마이그레이션을 수행할 수 없습니다.
  • CVM(기밀 가상 머신) 은 지원되지 않습니다.
  • Pod 샌드박싱 은 지원되지 않습니다.
  • Windows OS SKU 마이그레이션은 지원되지 않습니다.
  • Mariner에서 Azure Linux로 OS SKU 마이그레이션이 지원되지만 Mariner로의 롤백은 지원되지 않습니다.

현재 위치 OS SKU 마이그레이션을 위한 필수 조건

  • 하나 이상의 Azure Linux 노드 풀이 있는 기존 AKS 클러스터입니다.
  • DEV/prod에서 OS Guard 클러스터가 있는 Azure Linux를 배포하고 서비스가 정상 상태인지 확인하여 OS SKU 마이그레이션 기능을 사용하기 전에 OS Guard 컨테이너 호스트를 사용하여 Azure Linux 에서 워크로드가 성공적으로 구성되고 실행되도록 하는 것이 좋습니다.
  • 프로덕션 클러스터에서 프로세스를 사용하기 전에 테스트/개발에서 마이그레이션 기능이 작동하는지 확인합니다.
  • 업그레이드 중에 AKS가 VM 간에 Pod를 이동할 수 있도록 Pod에 Pod 중단 예산이 충분한지 확인합니다.
  • Azure CLI 버전 2.61.0 이상이 필요합니다. az version 명령을 사용하여 버전을 찾습니다. 최신 버전으로 업그레이드하려면 명령을 사용합니다 az upgrade .

현재 위치에서 OS SKU 변경 작업을 진행하십시오

표준 노드 이미지 업그레이드 프로세스를 통해 클러스터를 롤아웃하는 노드 풀의 OS SKU를 변경하여 OS Guard를 사용하여 기존 Ubuntu 또는 Azure Linux 노드 풀을 Azure Linux로 마이그레이션할 수 있습니다. 이 새로운 기능은 새 노드 풀을 만들 필요가 없습니다. 대신 기존 노드 풀이 자동으로 이미지로 다시 설치됩니다.

OS Guard를 사용하여 Azure Linux 컨테이너 호스트 노드 풀의 OS SKU를 Azure Linux로 마이그레이션

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

    az aks nodepool update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm
    

    예제 출력:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
      "name": "nodepool1",
      "osSku": "AzureLinuxOSGuard",
      "provisioningState": "Succeeded"
    }
    

비고

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

OS SKU 마이그레이션 확인

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

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

팁 (조언)

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

이전 OS SKU로 되돌리기

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

비고

OS SKU 마이그레이션은 OS SKU Mariner로의 롤백을 지원하지 않습니다.

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

다음 단계

이 자습서에서는 OS Guard를 사용하여 기존 노드를 Azure Linux로 마이그레이션했습니다. 다음 자습서에서는 원격 분석을 사용하도록 설정하여 클러스터를 모니터링하는 방법을 알아봅니다.