근접 배치 그룹을 사용하여 AKS(Azure Kubernetes Service) 클러스터의 대기 시간 단축

참고 항목

AKS에서 근접 배치 그룹을 사용하는 경우 공동 배치는 에이전트 노드에만 적용됩니다. 노드 간 대기 시간과 해당하는 호스트된 Pod 간 대기 시간이 단축됩니다. 공동 배치는 클러스터의 컨트롤 플레인 배치에 영향을 주지 않습니다.

Azure에서 애플리케이션을 배포할 때 VM(가상 머신) 인스턴스를 지역 또는 가용성 영역에 분산하여 네트워크 대기 시간을 만들 수 있으며, 이는 애플리케이션의 전반적인 성능에 영향을 미칠 수 있습니다. 근접 배치 그룹은 Azure 컴퓨팅 리소스가 물리적으로 서로 가깝게 배치되도록 하는 데 사용되는 논리적 그룹화입니다. 게임, 엔지니어링 시뮬레이션, HFT(고주파 거래)와 같은 일부 애플리케이션에는 대기 시간이 짧아 신속하게 완료할 있는 작업이 필요합니다. 유사한 HPC(고성능 컴퓨팅) 시나리오의 경우 클러스터의 노드 풀에 PPG(근접 배치 그룹)를 사용하는 것이 좋습니다.

시작하기 전에

이 문서에는 Azure CLI 버전 2.14 이상이 필요합니다. az --version을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.

제한 사항

  • 근접 배치 그룹은 하나의 가용성 영역에만 매핑할 수 있습니다.
  • 노드 풀은 Virtual Machine Scale Sets를 사용하여 근접 배치 그룹을 연결해야 합니다.
  • 노드 풀은 노드 풀을 만들 때만 근접 배치 그룹을 연결할 수 있습니다.

노드 풀 및 근접 배치 그룹

근접 배치 그룹을 사용하여 배포하는 첫 번째 리소스는 특정 데이터 센터에 연결됩니다. 동일한 근접 배치 그룹을 사용하여 배포하는 모든 추가 리소스는 동일한 데이터 센터에 공동 배치됩니다. 근접 배치 그룹을 사용하는 모든 리소스가 중지(할당 취소)되거나 삭제되면 더 이상 연결되지 않습니다.

  • 여러 노드 풀을 단일 근접 배치 그룹과 연결할 수 있습니다.
  • 노드 풀은 단일 근접 배치 그룹에만 연결할 수 있습니다.

가용성 영역을 사용하여 근접 배치 그룹 구성

참고 항목

근접 배치 그룹에는 하나의 가용성 영역만 사용하는 노드 풀이 필요하지만 99.9%의 기준 Azure VM SLA는 여전히 단일 영역의 VM에 적용됩니다.

근접 배치 그룹은 노드 풀 개념이며 각 개별 노드 풀과 연결됩니다. PPG 리소스를 사용하는 것은 AKS 컨트롤 플레인 가용성에 영향을 주지 않으며, 이는 영역을 사용하여 클러스터를 디자인하는 방법에 영향을 미칠 수 있습니다. 클러스터가 여러 영역에 분산되도록 하려면 다음 디자인을 사용하는 것이 좋습니다.

  • 세 개의 영역을 사용하고 근접 배치 그룹이 연결되지 않은 첫 번째 시스템 풀로 클러스터를 프로비전하여 시스템 Pod가 여러 영역에 걸쳐 분산된 전용 노드 풀에 배치되도록 합니다.
  • 고유한 영역과 각 풀에 연결된 근접 배치 그룹을 사용하여 추가 사용자 노드 풀을 추가합니다. 예를 들어 영역 1과 PPG1의 nodepool1, 영역 2와 PPG2의 nodepool2, PPG3가 포함된 영역 3의 nodepool3이 있습니다. 이 구성은 클러스터 수준에서 노드가 여러 영역에 분산되고 각 개별 노드 풀이 전용 PPG 리소스와 함께 지정된 영역에 공동 배치되도록 합니다.

근접 배치 그룹을 사용하여 새 AKS 클러스터 만들기

가속화된 네트워킹을 통해 가상 머신의 네트워킹 성능이 크게 향상됩니다. 가속화된 네트워킹에서 근접 배치 그룹을 사용하는 것이 좋습니다. 기본적으로 AKS는 둘 이상의 vCPU와 함께 대부분의 Azure 가상 머신이 포함되는 지원되는 가상 머신 인스턴스에서 가속화된 네트워킹을 사용합니다.

  1. az group create 명령을 사용하여 Azure 리소스 그룹을 만듭니다.

    az group create --name myResourceGroup --location centralus
    
  2. az ppg create 명령을 사용하여 근접 배치 그룹을 만듭니다. 출력의 ID 값을 기록해 둡니다.

    az ppg create -n myPPG -g myResourceGroup -l centralus -t standard
    

    이 명령은 다음 예제 출력과 유사한 출력을 생성합니다. 여기에는 예정된 CLI 명령에 필요한 ID 값이 포함됩니다.

    {
      "availabilitySets": null,
      "colocationStatus": null,
      "id": "/subscriptions/yourSubscriptionID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myPPG",
      "location": "centralus",
      "name": "myPPG",
      "proximityPlacementGroupType": "Standard",
      "resourceGroup": "myResourceGroup",
      "tags": {},
      "type": "Microsoft.Compute/proximityPlacementGroups",
      "virtualMachineScaleSets": null,
      "virtualMachines": null
    }
    
  3. az aks create 명령을 사용하여 AKS 클러스터를 만들고 myPPGResourceID 값을 이전 단계의 근접 배치 그룹 리소스 ID로 바꿉니다.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --ppg myPPGResourceID
    

기존 클러스터에 근접 배치 그룹 추가

새 노드 풀을 만들어 기존 클러스터에 근접 배치 그룹을 추가할 수 있습니다. 그런 다음, 필요에 따라 기존 워크로드를 새 노드 풀로 마이그레이션하고 원래 노드 풀을 삭제할 수 있습니다.

이전에 만든 것과 동일한 근접 배치 그룹을 사용하여 AKS 클러스터의 두 노드 풀에 있는 에이전트 노드가 실제로 동일한 데이터 센터에 있는지 확인합니다.

  • az aks nodepool add 명령을 사용하여 새 노드 풀을 만들고 myPPGResourceID 값을 근접 배치 그룹 리소스 ID로 바꿉니다.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name mynodepool \
        --node-count 1 \
        --ppg myPPGResourceID
    

정리

  • az group delete 명령을 사용하여 해당 리소스와 함께 Azure 리소스 그룹을 삭제합니다.

    az group delete --name myResourceGroup --yes --no-wait
    

다음 단계

근접 배치 그룹에 대해 자세히 알아봅니다.