使用鄰近放置群組來減少 Azure Kubernetes Service (AKS) 叢集的延遲

注意

在 AKS 上使用鄰近放置群組時,僅會在代理程式節點上套用共置。 已經改善節點對節點,以及對應託管 Pod 對 Pod 的延遲。 共置不會對放置叢集控制平面造成影響。

在 Azure 中部署您的應用程式時,跨區域或可用性區域分散虛擬機器 (VM) 執行個體會產生網路延遲,這可能會影響應用程式的整體效能。 鄰近放置群組是邏輯群組,可用來確保 Azure 計算資源實際位於彼此接近的位置。 某些應用程式 (例如遊戲、工程模擬,以及高頻率交易 (HFT)) 需要低延遲和快速完成的工作。 針對類似的高效能運算 (HPC) 案例,請考慮針對叢集的節點集區使用鄰近放置群組 (PPG)。

開始之前

本文需要使用 Azure CLI 2.14 版或更新版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI

限制

  • 鄰近放置群組只能對應於一個可用性區域。
  • 節點集區必須使用虛擬機器擴展集來建立與鄰近放置群組的關聯。
  • 節點集區只能在節點集區建立時間建立與鄰近放置群組的關聯。

節點集區和鄰近放置群組

您使用鄰近放置群組部署的第一個資源會附加至特定資料中心。 使用相同鄰近放置群組部署的其他資源會共置於相同的資料中心。 使用鄰近放置群組的全部資源都已停止 (解除配置) 或刪除之後,就不會繼續附加在資料中心上。

  • 許多節點集區可以與單一鄰近放置群組相關聯。
  • 一個節點集區則可能只能與單一鄰近放置群組相關聯。

使用可用性區域設定鄰近放置群組

注意

雖然鄰近放置群組只能將節點集區用於一個可用性區域,但基準 Azure VM SLA 99.9% 仍然對單一區域中的 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 命令建立鄰近放置群組。 務必記下輸出中的識別碼值。

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

    此命令會產生類似下列範例輸出的輸出,其中包含即將推出的 CLI 命令所需的識別碼值。

    {
      "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 值取代為上一個步驟中的鄰近放置群組資源識別碼。

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

將鄰近放置群組新增至現有的叢集

您可以建立新的節點集區,將鄰近放置群組新增至現有叢集。 接著,您可以選擇將現有的工作負載移轉至新的節點集區,並且刪除原始節點集區。

使用您稍早建立的相同鄰近放置群組,確保 AKS 叢集中這兩個節點集區的代理程式節點實際位於相同的資料中心。

  • 使用 az aks nodepool add 命令建立新的節點集區,並將 myPPGResourceID 值取代為鄰近放置群組資源識別碼。

    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
    

下一步

深入了解鄰近放置群組