AKS(Azure Kubernetes Service)에서 Virtual Machines 노드 풀 사용

이 문서에서는 AKS에 대한 새 Virtual Machines 노드 풀 형식에 대해 알아봅니다.

Virtual Machines 노드 풀을 사용하여 AKS는 모든 단일 노드의 프로비전 및 부트스트래핑을 직접 관리합니다. Virtual Machine Scale Sets 노드 풀의 경우 AKS는 Virtual Machine Scale Sets의 모델을 관리하고 이를 사용하여 노드 풀의 모든 노드에서 일관성을 달성합니다. Virtual Machines 노드 풀을 사용하면 개별 워크로드에 가장 적합한 가상 머신으로 클러스터를 오케스트레이션할 수 있습니다.

개요

작동 방식

노드 풀은 여러 유형의 워크로드를 지원하도록 다른 가상 머신 크기가 지정된 VM(가상 머신) 집합으로 구성됩니다. SKU라고 하는 이러한 가상 머신 크기는 특정 용도로 최적화된 여러 제품군으로 분류됩니다. 자세한 내용은 VM SKU 설명서를 참조하세요. Virtual Machine 노드 풀을 사용하면 다중 SKU 수동 크기 조정 및 다중 SKU 자동 크기 조정을 수행할 수 있습니다.

여러 가상 머신 크기의 크기 조정을 사용하도록 설정하기 위해 Virtual Machines 노드 풀 유형은 노드 풀의 크기 조정 방법, 특히 원하는 가상 머신 크기 목록 및 각 크기의 수를 나타내는 구성을 포함하는 구성을 사용합니다 ScaleProfile . A ManualScaleProfile 는 원하는 가상 머신 크기 하나와 노드 풀에서 해당 유형의 총 수를 지정하는 확장 프로필입니다. 에 하나의 가상 머신 크기만 허용됩니다 ManualScaleProfile. 노드 풀에서 각 가상 머신 크기에 대해 별도의 ManualScaleProfile 크기를 만들어야 합니다. 새 Virtual Machines 노드 풀을 만들 때, vm-size 필드를 사용하고 node-count을 포함하여 가상 머신 크기에 대한 초기 수동 크기 조정 프로필을 추가합니다. 수동 크기 조정 프로필을 추가하기 위한 지침에 따라 수동 크기 조정 프로필을 더 추가할 수도 있습니다.

또한 Virtual Machine 노드 풀은 Auto 모드를 허용합니다. 즉, 노드 풀에서 클러스터 자동 확장기를 사용할 수 있습니다. 모드의 Auto 모든 Virtual Machine 노드 풀은 최대 5개의 동일한 제품군 VM SKU를 사용할 수 있으며 동일한 노드 풀에서 이러한 서로 다른 VM SKU의 크기를 자동으로 조정합니다. 각 AutoScaleProfile 노드는 노드 풀에 자체 최소 및 최대 노드 수를 가질 수 있습니다.

참고

새 Virtual Machines 노드 풀을 만들 때 여러 확장 프로필을 가질 수 있으며 노드 풀에 하나 이상의 수동 또는 자동 크기 조정 프로필이 필요합니다.

장점

Virtual Machines 노드 풀 유형의 장점은 다음과 같습니다.

  • 유연성: 노드 사양을 업데이트하여 현재 워크로드 및 요구 사항에 맞게 조정할 수 있습니다.
  • 미세 조정된 컨트롤: 단일 노드 수준 컨트롤을 사용하면 다른 사양의 노드를 지정하고 혼합하여 단일 모델에서 제한을 해제하고 일관성을 향상시킬 수 있습니다.
  • 효율성: 클러스터의 노드 공간을 줄여 운영 요구 사항을 간소화할 수 있습니다.

Virtual Machines 노드 풀은 동적 워크로드 및 고가용성 요구 사항에 대한 더 나은 환경을 제공합니다. Virtual Machines 노드 풀을 사용하면 하나의 노드 풀에서 여러 유사한 패밀리 가상 머신을 설정할 수 있습니다. 워크로드는 구성한 사용 가능한 리소스에서 자동으로 예약됩니다.

기능 비교

다음 표에서는 Virtual Machines 노드 풀과 표준 Scale Set 노드 풀을 비교하는 방법을 강조 표시합니다.

노드 풀 유형 기능
가상 머신 노드 풀 노드 풀에서 노드를 추가, 제거 또는 업데이트할 수 있습니다. 가상 머신 유형은 동일한 패밀리 형식의 가상 머신(예: D 시리즈, A 시리즈 등)일 수 있습니다. Virtual Machine 노드 풀은 다중 SKU 수동 및 자동 크기 조정도 허용합니다.
Virtual Machine Scale Set 기반 노드 풀 노드 풀에서 동일한 크기 및 형식의 노드를 추가하거나 제거할 수 있습니다. 클러스터에 새 가상 머신 크기를 추가하는 경우 새 노드 풀을 만들어야 합니다.

AKS에서 어떤 컴퓨팅 크기 조정 환경을 선택해야 하나요?

워크로드 요구 사항에 따라 여러 컴퓨팅 크기 조정 환경을 고려해야 합니다. 각각에 대한 사용 사례를 참조하세요.

  • 노드 자동 프로비전: 다중 SKU 자동 크기 조정 및 보다 지능적이고 유연한 VM SKU 선택(여러 SKU 제품군 포함)에 가장 적합합니다. = Virtual Machine 노드 풀: 다중 SKU 수동 크기 조정에 가장 적합하며 다중 SKU 자동 크기 조정을 지원합니다. nodepool당 최대 5개의 크기의 특정 SKU 선택 필요
  • Virtual Machine Scale Sets: 단일 SKU 수동 크기 조정 및 단일 SKU 자동 크기 조정을 지원합니다. nodepool당 최대 1개의 크기의 특정 SKU 선택 필요

제한 사항

  • 풀에 지정된 VM 크기는 동일한 형식이어야 합니다. 예를 들어 GPU 및 비 GPU 또는 x86 및 ARM64 가상 머신은 동일한 노드 풀에 있을 수 없습니다.
  • InifiniBand를 사용할 수 없습니다.
  • 노드 풀 스냅샷은 지원되지 않습니다.
  • 노드 풀에서 선택한 모든 VM 크기는 유사한 가상 머신 패밀리에서 가져온 것이어야 합니다. 예를 들어 N 시리즈 가상 머신 형식을 동일한 노드 풀의 D 시리즈 가상 머신 형식과 혼합할 수 없습니다.
  • Virtual Machines 노드 풀은 노드 풀당 최대 5개의 서로 다른 가상 머신 크기를 허용합니다.

필수 구성 요소

  • Azure 구독 계정이 없는 경우 무료 계정에 만들 수 있습니다.
  • Azure CLI 버전 2.73.0 이상이 설치 및 구성되었습니다. 버전을 확인하려면 az --version을 실행합니다. Azure CLI 설치 또는 업그레이드에 대한 자세한 내용은 Azure CLI 설치를 참조하세요.
  • 이 기능을 사용하려면 kubernetes 버전 1.27 이상이 필요합니다. kubernetes 버전을 업그레이드하려면 AKS 클러스터 업그레이드를 참조하세요.

중요합니다

사용자 지정 가상 네트워크 요구 사항: 가상 머신 노드 풀을 사용자 지정 가상 네트워크에 배포하는 경우 클러스터는 대상 서브넷에 대한 네트워크 기여자 이상의 권한이 있는 사용자 할당 관리 ID를 사용해야 합니다. Virtual Machine Scale Set 노드 풀과 달리 Virtual Machines 노드 풀은 서브넷 조인 작업의 클러스터 ID에만 의존하며 자사 토큰을 사용하지 않습니다. 시스템 할당 관리 ID를 사용하는 클러스터가 사용자 지정 가상 네트워크에서 Virtual Machines 노드 풀을 생성하거나 업데이트할 때, 사전 검증이 실패하면 InvalidParameter 오류가 반환됩니다. 클러스터에 대해 사용자 할당 관리 ID를 구성하는 방법에 대한 자세한 내용은 AKS에서 관리 ID 사용을 참조하세요.

Virtual Machines 노드 풀을 사용하여 AKS 클러스터 만들기

참고

확장 프로필에는 하나의 VM 크기만 허용되며, 최대 제한은 Virtual Machines 노드 풀에 대한 전체 5개의 VM 확장 프로필입니다.

Virtual Machines 노드 풀이 포함된 AKS 클러스터를 생성하려면 az aks create 명령을 사용하고 --vm-set-type 플래그를 "VirtualMachines"로 설정하세요.

다음 예제에서는 두 개의 노드가 포함된 Virtual Machines 노드 풀을 사용하여 myAKSCluster 라는 클러스터를 만들고, SSH 키를 생성하고, 부하 분산 장치 SKU를 표준으로 설정하고, Kubernetes 버전을 1.31.0으로 설정합니다.

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --vm-set-type "VirtualMachines" \
    --vm-sizes "Standard_D4s_v3"
    --node-count 2 \
    --kubernetes-version 1.31.0

사용자 지정 가상 네트워크에서 Virtual Machines 노드 풀을 사용하여 AKS 클러스터 만들기

가상 머신 노드 풀을 사용자 지정 가상 네트워크에 배포하는 경우 클러스터를 만들기 전에 사용자 할당 관리 ID를 만들고 가상 네트워크에 대한 네트워크 기여자 권한을 부여해야 합니다.

  1. 가상 네트워크 및 서브넷을 만듭니다.

    az network vnet create \
        --resource-group myResourceGroup \
        --name myVnet \
        --address-prefixes 10.1.0.0/16 \
        --subnet-name mySubnet \
        --subnet-prefix 10.1.0.0/24
    
  2. 서브넷 리소스 ID를 가져옵니다.

    SUBNET_ID=$(az network vnet subnet show \
        --resource-group myResourceGroup \
        --vnet-name myVnet \
        --name mySubnet \
        --query id \
        --output tsv)
    
  3. 사용자 할당 관리 ID 만들기.

    az identity create \
        --name myAKSIdentity \
        --resource-group myResourceGroup
    
  4. 관리되는 ID의 주체 ID 및 리소스 ID를 가져옵니다.

    IDENTITY_PRINCIPAL_ID=$(az identity show \
        --name myAKSIdentity \
        --resource-group myResourceGroup \
        --query principalId \
        --output tsv)
    
    IDENTITY_RESOURCE_ID=$(az identity show \
        --name myAKSIdentity \
        --resource-group myResourceGroup \
        --query id \
        --output tsv)
    
  5. 가상 네트워크의 관리 ID에 네트워크 기여자 역할을 할당합니다.

    VNET_ID=$(az network vnet show \
        --resource-group myResourceGroup \
        --name myVnet \
        --query id \
        --output tsv)
    
    az role assignment create \
        --assignee $IDENTITY_PRINCIPAL_ID \
        --role "Network Contributor" \
        --scope $VNET_ID
    

    클러스터의 관리 ID에 부여된 권한을 전파하는 데 최대 60분이 걸릴 수 있습니다. 다음 명령을 사용하여 상태를 확인합니다.

  6. 사용자 지정 가상 네트워크에서 Virtual Machines 노드 풀을 사용하여 AKS 클러스터를 만듭니다.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --vm-set-type "VirtualMachines" \
        --vm-sizes "Standard_D4s_v3" \
        --node-count 2 \
        --vnet-subnet-id $SUBNET_ID \
        --assign-identity $IDENTITY_RESOURCE_ID
    

Windows를 사용하도록 설정하고 Windows Virtual Machine 노드 풀을 사용하여 클러스터 만들기

가상 머신 노드 풀은 Windows 지원 클러스터에서 사용할 수 있습니다. 다음 예제에서는 Virtual Machines 노드 풀을 사용하여 myAKSCluster 라는 클러스터를 만듭니다. 이러한 단계는 처음에 Linux 시스템 풀을 만듭니다.

  1. 클러스터에서 Windows Server 노드의 관리자 자격 증명으로 사용할 사용자 이름을 만듭니다. 다음 명령은 사용자 이름을 입력하라는 메시지를 표시하고 이를 WINDOWS_USERNAME로 설정하여 이후 명령에서 사용합니다.

    echo "Please enter the username to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_USERNAME
    
  2. 이전 단계에서 만든 관리자 사용자 이름에 대한 암호를 만듭니다. 암호는 최소 14자여야 하며 Windows Server 암호 복잡성 요구 사항을 충족해야 합니다.

    echo "Please enter the password to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_PASSWORD
    
  3. az aks create 명령을 사용하고 --vm-set-type 플래그를 "VirtualMachines"(으)로 설정하여 Windows를 사용하도록 설정한 상태로 가상 머신 유형 노드 풀을 포함하는 AKS 클러스터를 만듭니다.

    az aks create \
       --resource-group myResourceGroup \
       --name myAKSCluster \
       --node-count 2 \
       --enable-addons monitoring \
       --generate-ssh-keys \
       --windows-admin-username $WINDOWS_USERNAME \
       --windows-admin-password $WINDOWS_PASSWORD \
       --vm-set-type "VirtualMachines" \
       --network-plugin azure
    
  4. az aks nodepool add 명령을 사용하고 --vm-set-type 플래그를 "VirtualMachines"(으)로 설정하여 Windows를 사용하도록 설정한 기존 클러스터에 가상머신 노드 풀을 추가합니다. 다음 예제에서는 npwin 이라는 Virtual Machines 노드 풀을 myAKSCluster 클러스터에 추가합니다.

    az aks nodepool add
       --resource-group myResourceGroup \
       --cluster-name myAKSCluster \
       --os-type Windows \
       --name npwin \
       --vm-sizes "Standard_D2s_V3" \
       --node-count 1
       --vm-set-type "VirtualMachines"
    

기존 클러스터에 Virtual Machines 노드 풀 추가

기존 클러스터에 az aks nodepool add 명령과 --vm-set-type 플래그가 "VirtualMachines"으로 설정된 상태로 Virtual Machines 노드 풀을 추가합니다.

다음 예제에서는 myvmpool이라는 Virtual Machines 노드 풀을 myAKSCluster 클러스터에 추가합니다. 노드 풀은 --vm-sizesStandard_D4s_v3 값이 각각 --node-count 및 3으로 설정된 ManualScaleProfile을 만듭니다.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-set-type "VirtualMachines" \
    --vm-sizes "Standard_D4s_v3" \
    --node-count 3

노드 풀에 수동 크기 조정 프로필 추가

az aks nodepool manual-scale add--vm-sizes 플래그가 "Standard_D2s_v3"로 설정된 상태에서 node-count가 2로 설정된 노드 풀에 수동 크기 조정 프로필을 추가합니다.

다음 예제에서는 클러스터 myAKSCluster의 노드 풀 myvmpool에 수동 확장 프로필을 추가합니다. 노드 풀에는 다음과 같은 VM SKU Standard_D2s_v3가 있는 두 개의 노드가 포함됩니다.

az aks nodepool manual-scale add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-sizes "Standard_D2s_v3" \
    --node-count 2

기존 수동 크기 조정 프로필 업데이트

az aks nodepool manual-scale update 플래그를 --vm-sizes으로 설정하고 "Standard_D2s_v3" 명령을 사용하여 노드 풀의 기존 수동 크기 조정 프로필을 업데이트합니다.

참고

매개 변수를 --current-vm-sizes 사용하여 업데이트하려는 기존 노드 풀의 크기를 지정합니다. --vm-sizes 및/또는 --node-count를 업데이트할 수 있습니다. 다른 도구나 REST API를 사용하는 경우 노드 풀 크기 조정 프로필을 업데이트할 때 전체 agentPoolProfiles.virtualMachinesProfile.scale 필드를 전달해야 합니다.

다음 예제에서는 수동 확장 프로필을 myAKSCluster 클러스터의 myvmpool 노드 풀로 업데이트 합니다. 이 명령은 노드 수를 5개로 업데이트하고 VM SKU를 다음으로 Standard_D4s_v3Standard_D8s_v3변경합니다.

az aks nodepool manual-scale update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D4s_v3" \
    --vm-sizes "Standard_D8s_v3" \
    --node-count 5

수동 크기 조정 프로필 삭제

az aks nodepool manual-scale delete 명령을 사용하여 기존 수동 크기 조정 프로필을 삭제합니다.

참고

매개 변수는 --current-vm-sizes 삭제할 기존 노드 풀의 크기를 지정합니다. 다른 도구 또는 REST API를 사용하여 노드 풀 확장 프로필을 업데이트하는 경우 전체 agentPoolProfiles.virtualMachinesProfile.scale 필드를 전달합니다.

다음 예제에서는 Standard_D8s_v3 노드 풀에서 VM SKU에 대한 수동 크기 조정 프로필을 삭제합니다.

az aks nodepool manual-scale delete \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D8s_v3"

Virtual Machines 노드 풀을 사용하는 클러스터 자동 크기 조정기(미리 보기)

Virtual Machines 노드 풀은 클러스터 자동 크기 조정기를 지원합니다. 클러스터를 만드는 동안 플래그 --enable-cluster-autoscaler 를 사용하거나 새 노드 풀을 추가하거나 기존 수동 노드 풀을 업데이트할 때 사용할 수 있습니다.

Virtual Machine 노드 풀에서 클러스터 자동 크기 조정기를 사용하는 경우 동작은 다음과 같습니다.

  • 스케일 업: 자동 크기 조정기는 대기 중인 Pod로 인한 압력에 대응하며, 여러 VM 크기가 포함된 노드 풀의 노드 수를 늘릴 수 있습니다.
  • 규모 축소: 노드 사용률에 따라 자동 크기 조정기에서 특정 노드를 선택합니다. 클러스터 자동 크기 조정이 크기 조정 작업을 트리거하는 시기를 조정하도록 구성할 scale-down-utilization-threshold수 있습니다. 자동 크기 조정 구성에 대한 자세한 내용은 클러스터 자동 크기 조정기 설명서를 참조하세요.

제한 사항

  • 이 기능은 퍼블릭 클라우드에서만 사용할 수 있습니다.
  • GPU 노드는 현재 지원되지 않습니다.
  • AKS 미리 보기 확장 버전 20.0.0b8 이상.

aks-preview 확장 설치

중요합니다

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

    # Install the aks-preview extension
    az extension add --name aks-preview
    
    # Update the aks-preview extension
    az extension update --name aks-preview

기능 플래그 등록

다음 명령을 사용하여 미리 보기 기능 플래그 VMsAgentAutoscalePreview 를 등록합니다.az feature register

    az feature register --namespace Microsoft.ContainerService --name VMsAgentPoolAutoscalePreview

Virtual Machines 노드 풀 및 클러스터 자동 크기 조정기를 사용하도록 설정된 AKS 클러스터 만들기

  • az aks create 명령을 사용하고 --vm-set-type 플래그를 "VirtualMachines"로 설정하며, 플래그 --enable-cluster-autoscaler를 사용하여 Virtual Machines 노드 풀이 포함된 AKS 클러스터를 만듭니다.

다음 예제에서는 노드 풀 크기가 "Standard_D4s_v3" 최소 노드 수, 최대 노드 수 5인 Virtual Machines 노드 풀을 사용하여 myAKSCluster 라는 클러스터를 만들고 Kubernetes 버전을 1.32.5로 설정합니다.

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --vm-set-type "VirtualMachines" \
    --node-vm-size "Standard_D4s_v3"
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5 \
    --kubernetes-version 1.32.5

기존 클러스터에 클러스터 자동 크기 조정기를 사용하도록 설정된 Virtual Machines 노드 풀 추가

  • Virtual Machines 노드 풀을 생성하려면 az aks nodepool add 명령을 사용하고 --vm-set-type 플래그를 "VirtualMachines"로 설정하며, 추가로 --enable-cluster-autoscaler 플래그를 사용하세요.

다음 예제에서는 "Standard_D4s_v3" 가상 머신 크기를 사용하여 myAKSCluster라는 클러스터에 클러스터 자동 크기 조정기를 사용하도록 설정된 Virtual Machines 노드 풀 myvmpool을 추가하고 최소 노드 수는 2, 최대 개수는 5입니다.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-set-type "VirtualMachines" \
    --node-vm-size "Standard_D4s_v3" \
    --enable-cluster-autoscaler
    --min-count 2 \
    --max-count 5 \

클러스터 자동 크기 조정기를 사용하도록 설정된 Virtual Machines 노드 풀에 대한 클러스터 자동 크기 조정기 설정 업데이트

다음 예제에서는 "Standard_D4s_v3"의 가상 머신 크기를 사용하여 myAKSCluster라는 클러스터의 Virtual Machines 노드 풀 myvmpool에 대한 설정을 업데이트합니다.

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --update-cluster-autoscaler \
    --node-vm-size "Standard_D4s_v3" \
    --min-count 3 \
    --max-count 7

Virtual Machines 노드 풀 크기 조정 프로필을 수동 크기 조정에서 자동 크기 조정 모드로 전환

다음 예제에서는 Virtual Machines 노드 풀 myvmpoolmyAKSCluster 클러스터에서 업데이트하여 모든 수동 확장 프로필을 최소 및 최대 노드 수가 동일한 자동 크기 조정 프로필로 변환합니다.

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Virtual Machines 노드 풀에서 클러스터 자동 크기 조정기 사용 안 함

클러스터 자동 크기 조정기를 비활성화하거나 가상 머신 노드 풀의 모든 스케일 프로필을 Auto 모드에서 Manual 모드로 전환할 수 있습니다.

다음 예제에서는 myAKSCluster라는 클러스터의 Virtual Machines 노드 풀 myvmpoolManual 모드에서 Auto 모드로 업데이트합니다.

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --disable-cluster-autoscaler

다음 단계

이 문서에서는 AKS에서 Virtual Machines 노드 풀을 사용하는 방법을 알아보았습니다. AKS의 노드 풀에 대해 자세히 알아보려면 노드 풀 만들기를 참조하세요.