共用方式為


在 Azure Kubernetes 服務(AKS)中為叢集建立節點池

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

附註

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

重要事項

2025 年 11 月 30 日起,Azure Kubernetes Service (AKS) 將不再支援或提供 Azure Linux 2.0 的安全更新。 Azure Linux 2.0 節點映像已凍結在 202512.06.0 發行版本。 自 2026 年 3 月 31 日起,節點映像將被移除,且你將無法擴展節點池。 遷移到支援的 Azure Linux 版本時,可以升級你的節點池到 支援的 Kubernetes 版本,或遷移到 osSku AzureLinux3。 欲了解更多資訊,請參閱 退休GitHub議題Azure 更新退休公告。 欲掌握最新公告與更新,請參考AKS發布說明

先決條件

  • 你需要安裝並設定 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節點池

  • 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 新增第二個節點池

上一節中建立的叢集具有單一節點集區。 在本區段中,我們會將第二個節點集區新增至叢集。 這個第二個節點池可以是作業系統類型 Linux,作業系統 SKU 為 UbuntuAzureLinux,或作業系統類型為 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. 當狀態顯示為Registered時,使用 az provider register 指令重新註冊 Microsoft.ContainerService 資源提供者。

    az provider register --namespace Microsoft.ContainerService
    
建立 Windows Server 2025 節點池
  • 使用 az aks nodepool add 命令建立新的節點集區。 以下範例建立一個包含 作業系統 SKU 的 節點池,運行三個 節點。

    欲了解更多關於Windows作業系統的資訊,請參閱 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資源

  • 將此 JSON 加入您的範本中以建立一個 Microsoft.ContainerService/managedClusters 資源。
  • 對 ARM 範本進行下列修改,在 AKS 叢集中建立單一 Ubuntu 節點集區:

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

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

上一節中建立的叢集具有單一節點集區。 在本區段中,我們會將第二個節點集區新增至叢集。 這個第二個節點池可以是作業系統類型 Linux,作業系統 SKU 為 UbuntuAzureLinux,或作業系統類型為 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. 當狀態顯示為Registered時,使用 az provider register 指令重新註冊 Microsoft.ContainerService 資源提供者。

    az provider register --namespace Microsoft.ContainerService
    
建立 Windows Server 2025 節點池
  • 在你的 AKS 叢集中建立多個 Windows 節點池,方法是對你的 ARM 範本做以下修改:

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

部署 ARM 範本

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

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

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

後續步驟

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