共用方式為


在 Azure Kubernetes Service (AKS) 中建立叢集的節點集區

本文說明如何在 AKS 叢集中建立一個或多個節點集區。

附註

這項功能可讓您更充分掌控建立和管理多個節點集區,而且需要個別的命令,才能建立/更新/刪除 (CRUD) 作業。 之前,透過 az aks createaz aks update 使用 managedCluster API 進行叢集作業,而且是變更控制平面和單一節點集區的唯一選項。 這項功能會透過 agentPool API 公開代理程式集區的個別作業集,並需要使用 az aks nodepool 命令集,在個別節點集區上執行作業。

重要事項

2025 年 11 月 30 日開始,AKS 將不再支援或提供 Azure Linux 2.0 的安全性更新。 從 2026 年 3 月 31 日開始,節點映像將會移除,而且您將無法調整節點集區。 將 節點集區升級 至支援的 Kubernetes 版本,或移轉至 osSku AzureLinux3,以升級至受支援的 Azure Linux 版本。 如需詳細資訊,請參閱 淘汰:AKS 上的 Azure Linux 2.0 節點集區

先決條件

  • 您需要安裝並設定 Azure CLI 2.2.0 版或更新版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI
  • 若要部署 ARM 範本,您需要對即將部署的資源具備寫入權限,並可存取 Microsoft.Resources/deployments 資源類型上的所有作業。 例如,若要部署虛擬機器 (VM),您需要 Microsoft.Compute/virtualMachines/writeMicrosoft.Resources/deployments/* 權限。 如需角色與權限的清單,請參閱 Azure 內建角色

  • 檢視每個參數的下列要求:

    • osTYPE:作業系統類型。 預設值為 Linux。
    • osSKU:指定代理程式集區所使用的 OS SKU。
    • count:託管 Docker 容器的代理程式 (VM) 數量。 針對使用者集區,允許的值必須介於 0 到 1000 (含) 的範圍內;針對系統集區,允許的值必須介於 1 到 1000 (含) 的範圍。 預設值為 1。
  • 使用 ARM 範本部署叢集之後,您可以使用 Azure CLI 或 Azure PowerShell 連線到叢集並部署範例應用程式。

限制

在建立支援多個節點集區的 AKS 叢集時,需遵守下列限制:

  • 如果您有其他系統節點集區可以取代其在 AKS 叢集中的位置,您可以刪除系統節點集區。 否則,您無法刪除系統節點集區。

  • 系統儲存區必須至少包含一個節點。 使用者節點集區可以包含零個或多個節點。

  • 如果您建立具有單一節點集區的叢集,則作業系統類型必須是 Linux。 OS SKU 可以是任何 Linux 變體,例如 UbuntuAzureLinux。 您無法使用單一 Windows 節點集區建立叢集。 如果您想要執行 Windows 容器,則必須在使用 Linux 系統節點集區建立 Windows 節點集區之後,將 Windows 節點集區新增至 叢集。

  • AKS 叢集必須使用標準 SKU 負載平衡器來使用多個節點集區。 基本 SKU 負載平衡器不支援此功能。

  • AKS 叢集必須使用節點的虛擬機器擴展集。

  • 節點集區的名稱只能包含小寫英數字元,且開頭必須是小寫字母。

    • 如果是 Linux 節點集區,長度必須介於 1 到 12 個字元之間。
    • 如果是 Windows 節點集區,長度必須介於 1 到 6 個字元之間。
  • 所有節點集區必須位於相同的虛擬網路中。

  • 建立節點池後,你無法更改虛擬機(VM)的大小。

  • 當您在叢集建立時建立多個節點集區時,節點集區的所有 Kubernetes 版本都必須符合控制平面的版本集。 在叢集佈建後,您可以使用每個節點集區的操作進行更新。

建立專用節點集區

若要瞭解如何建立特製節點集區,請參閱下列文章:

設定環境變數

  • 在 shell 中設定下列環境變數,以簡化本文中的命令。 您可以將值變更為您偏好的名稱。

    export RESOURCE_GROUP_NAME="my-aks-rg"
    export LOCATION="eastus"
    export CLUSTER_NAME="my-aks-cluster"
    export NODE_POOL_NAME="mynodepool"
    

建立資源群組

  • 使用 az group create 命令來建立 Azure 資源群組。

    az group create --name $RESOURCE_GROUP_NAME --location $LOCATION
    

使用 Azure CLI 建立具有單一節點集區的 AKS 叢集

如果您只想在 AKS 叢集中擁有一個節點集區,就可以將應用程式 Pod 排程到系統節點集區上。 如果您在生產環境中執行 AKS 叢集的單一系統節點集區,建議您針對該節點集區使用至少三個節點。 如果一個節點關閉,則備援會遭入侵。 您可以藉由擁有更多系統節點集區節點來降低此風險。

  1. 使用命令 az aks create 建立具有單一 Ubuntu 節點集區的叢集。 此步驟會指定單一節點集區中的兩個節點。

    az aks create \
        --resource-group $RESOURCE_GROUP_NAME \
        --name $CLUSTER_NAME \
        --vm-set-type VirtualMachineScaleSets \
        --node-count 2 \
        --os-sku Ubuntu \
        --location $LOCATION \
        --load-balancer-sku standard \
        --generate-ssh-keys
    

    建立叢集需要幾分鐘的時間。

  2. 當叢集準備就緒時,請使用 az aks get-credentials 命令,來取得叢集認證。

    az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
    

使用 Azure CLI 新增第二個節點集區

上一節中建立的叢集具有單一節點集區。 在本區段中,我們會將第二個節點集區新增至叢集。 此第二個節點集區的 OS 類型可以是 Linux,其 OS SKU 可以是 UbuntuAzureLinux,或 OS 類型為 Windows

附註

如果您想要將使用暫時性 OS 磁碟的節點集區新增至 AKS 叢集,您可以在執行--node-osdisk-type命令時將旗標設定Ephemeral為 。az aks nodepool add

透過暫時性 OS,您可以部署 VM 快取的大小的 VM 和執行個體映像。 AKS 中的預設節點 OS 磁碟設定會使用 128 GB,這表示您需要快取大於 128 GB 的 VM 大小。 預設 Standard_DS2_v2 值的快取大小為 86 GB,這還不夠大。 Standard_DS3_v2 VM SKU 的快取大小為 172 GB,足夠大。 您也可以使用 --node-osdisk-size減少 OS 磁碟的預設大小,但請記住 AKS 映像的大小下限為 30 GB。

如果您想要建立具有 網路連結作業系統磁碟的節點集區,您可以將旗標設定 --node-osdisk-typeManaged 執行 az aks nodepool add 命令時。

新增 Linux 節點集區

  • 使用 az aks nodepool add 命令建立新的節點集區。 下列範例會建立具有 Linux 作業系統 SKU 的 Ubuntu 節點集區,該集區執行「三個」節點。 如果您未指定 OS SKU,AKS 預設為 Ubuntu

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP_NAME \
        --cluster-name $CLUSTER_NAME \
        --name $NODE_POOL_NAME \
        --node-vm-size Standard_DS2_v2 \
        --os-type Linux \
        --os-sku Ubuntu \
        --node-count 3
    

    建立節點集區需要幾分鐘的時間。

新增 Windows Server 節點集區

安裝 aks-preview 擴充功能
  1. 使用 aks-preview 命令安裝 az extension add Azure CLI 擴充功能。

    重要事項

    AKS 預覽功能可透過自助服務,以加入方式使用。 預覽是「依現況」及「可用時」提供的,並不包括在服務等級協定和有限保固之內。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:

    az extension add --name aks-preview
    
  2. 使用 az extension update 命令,更新為最新版的延伸模組。 Windows Server 2025 至少需要 18.0.0b5

    az extension update --name aks-preview
    
註冊 AksWindows2025Preview 功能旗標
  1. 使用 AksWindows2025Preview 命令註冊 az feature register 功能旗標。

    az feature register --namespace "Microsoft.ContainerService" --name "AksWindows2025Preview"
    
  2. 使用 az feature show 命令驗證註冊狀態。 狀態需要幾分鐘的時間才會顯示「已註冊」

    az feature show --namespace Microsoft.ContainerService --name AksWindows2025Preview
    
  3. 當狀態反映 [已註冊] 時,使用 命令重新整理 az provider register 資源提供者的註冊。

    az provider register --namespace Microsoft.ContainerService
    
建立 Windows Server 2025 節點集區
  • 使用 az aks nodepool add 命令建立新的節點集區。 下列範例會建立具有 Windows 作業系統 SKU 的 Windows2025 節點集區,該集區執行「三個」節點。

    如需 Windows OS 的詳細資訊,請參閱 Windows 最佳做法

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP_NAME \
        --cluster-name $CLUSTER_NAME \
        --name $NODE_POOL_NAME \
        --node-vm-size Standard_DS2_v2 \
        --os-type Windows \
        --os-sku Windows2025 \
        --node-count 3
    

檢查節點集區的狀態

  • 查看節點集區的狀態,請使用 az aks nodepool list 命令,並指定您的資源群組和叢集名稱。

    az aks nodepool list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
    

使用 ARM 範本建立具有單一節點集區的 AKS 叢集

如果您只想在 AKS 叢集中擁有一個節點集區,就可以將應用程式 Pod 排程到系統節點集區上。 如果您在生產環境中執行 AKS 叢集的單一系統節點集區,建議您針對該節點集區使用至少三個節點。 如果一個節點關閉,則備援會遭入侵。 您可以藉由擁有更多系統節點集區節點來降低此風險。

建立 Microsoft.ContainerService/managedClusters 資源

  • Microsoft.ContainerService/managedClusters 新增至範本,以建立資源。
  • 對 ARM 範本進行下列修改,在 AKS 叢集中建立單一 Ubuntu 節點集區:

      "properties": {
        "agentPoolProfiles": [
        {
            "count": "1",
            "osSKU": "ubuntu",
            "osType": "linux"
         } 
         ],
    }
    

使用 ARM 範本新增第二個節點集區

上一節中建立的叢集具有單一節點集區。 在本區段中,我們會將第二個節點集區新增至叢集。 此第二個節點集區的 OS 類型可以是 Linux,其 OS SKU 可以是 UbuntuAzureLinux,或 OS 類型為 Windows

新增 Linux 節點集區

  • 對 ARM 範本進行下列修改,在 AKS 叢集中建立多個 Ubuntu 節點集區:

      "properties": {
        "agentPoolProfiles": [
        {
            "count": "3",
            "osSKU": "ubuntu",
            "osType": "linux"
         } 
         ],
    }
    

新增 Windows Server 節點集區

安裝 aks-preview 擴充功能
  1. 使用 aks-preview 命令安裝 az extension add Azure CLI 擴充功能。

    重要事項

    AKS 預覽功能可透過自助服務,以加入方式使用。 預覽是「依現況」及「可用時」提供的,並不包括在服務等級協定和有限保固之內。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:

    az extension add --name aks-preview
    
  2. 使用 az extension update 命令,更新為最新版的延伸模組。 Windows Server 2025 至少需要 18.0.0b5

    az extension update --name aks-preview
    
註冊 AksWindows2025Preview 功能旗標
  1. 使用 AksWindows2025Preview 命令註冊 az feature register 功能旗標。

    az feature register --namespace "Microsoft.ContainerService" --name "AksWindows2025Preview"
    
  2. 使用 az feature show 命令驗證註冊狀態。 狀態需要幾分鐘的時間才會顯示「已註冊」

    az feature show --namespace Microsoft.ContainerService --name AksWindows2025Preview
    
  3. 當狀態反映 [已註冊] 時,使用 命令重新整理 az provider register 資源提供者的註冊。

    az provider register --namespace Microsoft.ContainerService
    
建立 Windows Server 2025 節點集區
  • 對 ARM 範本進行下列修改,在 AKS 叢集中建立多個 Windows 節點集區:

      "properties": {
        "agentPoolProfiles": [
        {
            "count": "3",
            "osSKU": "windows2025",
            "osType": "windows"
         } 
         ],
    }
    

部署 ARM 範本

為節點池設定污點、標籤或標記

建立節點集區時,您可以為其新增污點、標籤或標記。 新增污點、標籤或標記時,該節點集區內的所有節點也會獲得相同的污點、標籤或標記。 我們建議將這些屬性套用到整個節點池,而不是單一節點。 這樣一來,你就能輕鬆管理所有節點池的屬性,只需更新節點池的屬性,而不必逐個更新。

如需具體指示如何設定節點池的污點、標籤或標記,請參照以下資源:

後續步驟

在這篇文章中,你學會了如何建立一個只有單一節點池的 AKS 叢集,並在叢集中新增額外的節點池。 想了解更多如何管理你的節點池,請參閱以下文章: