이 자습서에서는 5부 중 3부에서 기존 노드를 ACL로 마이그레이션합니다. 다음 방법 중 하나를 사용하여 기존 노드를 마이그레이션할 수 있습니다.
- 기존 노드 풀을 제거하고 새 ACL 노드 풀을 추가합니다.
- OS(현재 위치 운영 체제) SKU 마이그레이션을 수행합니다.
이 자습서의 명령은 자습서 1: AKS용 ACL을 사용하여 클러스터 만들기에 설정된 환경 변수를 사용합니다.
마이그레이션할 기존 노드가 없는 경우 다음 자습서로 건너뜁니다. 이후 자습서에서는 클러스터에서 원격 분석 및 모니터링을 사용하도록 설정하고 ACL 노드를 업그레이드하는 방법을 알아봅니다.
사전 요구 사항
- 이전 자습서에서는 ACL 클러스터를 만들고 배포했습니다. 이러한 단계를 완료하지 않은 경우 자습서 1: AKS용 ACL을 사용하여 클러스터 만들기를 참조하세요.
- Azure Container Linux에는 Azure CLI 버전 2.86.0 이상이 필요합니다.
az version명령을 사용하여 버전을 찾습니다. 최신 버전으로 업그레이드하려면 명령을 사용합니다az upgrade.
Azure ACL(Container Linux) 고려 사항 및 제한 사항
시작하기 전에 ACL에 대한 다음 고려 사항 및 제한 사항을 검토합니다.
- ACL은 일반적으로 AKS v1.34부터 사용할 수 있습니다.
- ACL에는 보안 부팅 및 vTPM을 사용하여 신뢰할 수 있는 시작 이 필요합니다. 신뢰할 수 없는 시작 변형은 사용할 수 없습니다.
- Arm64의 ACL에서 Trusted Launch 호환성을 사용하려면 Cobalt 기반(v6) SKU가 필요합니다.
-
NodeImage는None유일하게 지원되는 OS(운영 체제) 업그레이드 채널입니다.Unmanaged및SecurityPatch은(는) 변경할 수 없는/usr디렉터리 때문에 ACL과 호환되지 않습니다. - 아티팩트 스트리밍 은 지원되지 않습니다.
- Pod 샌드박싱 은 지원되지 않습니다.
- CVM(기밀 가상 머신) 은 지원되지 않습니다.
- 1세대 VM은 지원되지 않습니다.
ACL 노드 풀 추가 및 기존 노드 풀 제거
명령을 사용하여 새 ACL 노드 풀을 추가합니다
az aks nodepool add. 새 풀을 시스템 에이전트 풀로 사용할 수 있도록 사용하여--mode System다음 단계에서 원래 노드 풀을 삭제할 수 있습니다. 다음 예제에서는 클러스터에 세 개의 노드 를 추가하는 aclsystem 이라는 노드 풀을 만듭니다.az aks nodepool add \ --resource-group $RESOURCE_GROUP \ --cluster-name $CLUSTER_NAME \ --name aclsystem \ --mode System \ --os-sku AzureContainerLinux \ --node-count 3예시 출력:
{ "id": "/subscriptions/xxxxx/resourceGroups/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/nodePools/aclsystem", "name": "aclsystem", "osSku": "AzureContainerLinux", "provisioningState": "Succeeded" }명령을 사용하여 기존 노드 풀을 제거합니다
az aks nodepool delete.az aks nodepool delete \ --resource-group $RESOURCE_GROUP \ --cluster-name $CLUSTER_NAME \ --name <existing-node-pool-name>
현재 위치 OS SKU 마이그레이션
현재 위치 OS SKU 마이그레이션에 대한 제한 사항
OS SKU 마이그레이션 요청을 차단할 수 있는 몇 가지 설정이 있습니다. 성공적인 마이그레이션을 보장하려면 다음 지침 및 제한 사항을 검토합니다.
- OS SKU 마이그레이션 기능은 PowerShell 또는 Azure Portal을 통해 사용할 수 없습니다.
- OS SKU 마이그레이션 기능은 기존 노드 풀의 이름을 바꾸는 것을 지원하지 않습니다.
- Ubuntu, Azure Linux 및 AzureContainerLinux는 유일하게 지원되는 Linux OS SKU 마이그레이션 대상입니다.
- ACL에는 신뢰할 수 있는 시작이 필요합니다. 노드 풀에서 아직 활성화되지 않은 경우,
--enable-secure-bootOS SKU로 마이그레이션할 때--enable-vtpm및AzureContainerLinux를 포함해야 합니다. 노드 풀의 VM 크기도 신뢰할 수 있는 시작을 지원해야 합니다. 현재 VM 크기가 지원하지 않는 경우 마이그레이션하기 전에 지원되는 VM 크기로 노드 풀의 크기를 조정하거나 다시 만들어야 합니다. - 1세대 VM은 지원되지 않습니다.
-
UseGPUDedicatedVHD를 사용하도록 설정된 Ubuntu OS SKU는 OS SKU 마이그레이션을 수행할 수 없습니다. - CVM(기밀 가상 머신) 은 지원되지 않습니다.
- Pod 샌드박싱 은 지원되지 않습니다.
- Windows OS SKU 마이그레이션은 지원되지 않습니다.
현재 위치 OS SKU 마이그레이션을 위한 필수 조건
- 하나 이상의 Linux 노드 풀이 있는 기존 AKS 클러스터입니다.
- 프로덕션 클러스터를 마이그레이션하기 전에 개발 또는 스테이징 환경에서 ACL 클러스터를 배포하여 ACL 에서 워크로드가 성공적으로 실행되는지 확인하는 것이 좋습니다.
- 프로덕션 클러스터에서 프로세스를 사용하기 전에 테스트/개발에서 마이그레이션 기능이 작동하는지 확인합니다.
- 업그레이드 중에 AKS가 VM 간에 Pod를 이동할 수 있도록 Pod에 충분한 PDB(Pod 중단 예산) 가 있는지 확인합니다.
- Azure CLI 버전 2.61.0 이상이 필요합니다.
az version명령을 사용하여 버전을 찾습니다. 최신 버전으로 업그레이드하려면 명령을 사용합니다az upgrade.
현재 위치 OS SKU 마이그레이션을 사용하여 ACL로 마이그레이션
표준 노드 이미지 업그레이드 프로세스를 통해 클러스터를 롤아웃하는 노드 풀의 OS SKU를 변경하여 기존 Ubuntu 또는 Azure Linux 노드 풀을 ACL로 마이그레이션할 수 있습니다. 이 메서드는 새 노드 풀을 만들 필요가 없습니다. 대신 기존 노드 풀이 자동으로 이미지로 다시 설치됩니다.
Important
ACL에는 신뢰할 수 있는 시작이 필요합니다.
--enable-secure-boot OS SKU로 마이그레이션할 때 --enable-vtpm 및 AzureContainerLinux를 포함해야 합니다. 노드 풀의 VM 크기도 신뢰할 수 있는 시작을 지원해야 합니다.
az aks nodepool update 명령을 사용하여 노드 풀의 OS SKU를 ACL로 마이그레이션하세요. 이 명령은 노드 풀의 이미지 다시 설치를 트리거합니다. OS SKU 변경은 즉시 업그레이드 작업을 트리거하며 완료하는 데 몇 분 정도 걸립니다.
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name <existing-node-pool-name> \
--os-sku AzureContainerLinux \
--enable-secure-boot \
--enable-vtpm
예시 출력:
{
"id": "/subscriptions/xxxxx/resourceGroups/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/nodePools/nodepool1",
"name": "nodepool1",
"osSku": "AzureContainerLinux",
"provisioningState": "Succeeded"
}
메모
OS SKU 마이그레이션 중에 문제가 발생하면 이전 OS SKU로 롤백할 수 있습니다.
OS SKU 마이그레이션 확인
테스트 클러스터에서 마이그레이션이 완료되면 다음을 확인하여 성공적인 마이그레이션을 확인합니다.
다음 명령을 사용하여 새 노드가 ACL을 실행하고 있는지 확인합니다.
kubectl get nodes -o wide다음 명령을 사용하여 모든 Pod 및 디먼셋이 새 노드 풀에서 실행되고 있는지 확인합니다.
kubectl get pods -o wide -A업그레이드된 노드 풀의 모든 노드 레이블이 다음 명령을 사용하여 예상되는지 확인합니다.
kubectl get nodes --show-labels명령을 사용하여 노드 이미지 버전을 확인합니다
az aks nodepool list.az aks nodepool list \ --resource-group $RESOURCE_GROUP \ --cluster-name $CLUSTER_NAME \ --query '[].{name: name, osSku: osSku, nodeImageVersion: nodeImageVersion}'예시 출력:
[ { "name": "nodepool1", "nodeImageVersion": "AKSAzureContainerLinux-202606.01.0", "osSku": "AzureContainerLinux" } ]
Tip
프로덕션 클러스터를 마이그레이션하기 전에 몇 주 동안 서비스의 상태를 모니터링하는 것이 좋습니다.
이전 OS SKU로 되돌리기
OS SKU 마이그레이션 중에 문제가 발생하면 이전 OS SKU로 롤백할 수 있습니다. 이렇게 하려면 OS SKU 필드를 이전 값으로 다시 변경하고 배포를 다시 제출하여 다른 업그레이드 작업을 트리거하고 노드 풀을 이전 OS SKU로 다시 설치합니다.
az aks nodepool update 명령을 사용하여 이전 OS SKU로 롤백합니다. 이 예제에서는 ACL에서 Azure Linux로 롤백합니다.
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name <existing-node-pool-name> \
--os-sku AzureLinux
다음 단계:
이 자습서에서는 기존 노드를 ACL로 마이그레이션했습니다. 다음 자습서에서는 ACL 클러스터에 대한 원격 분석 및 모니터링을 사용하도록 설정하는 방법을 알아봅니다.