全部產品
Search
文件中心

Container Service for Kubernetes:在ACK叢集中建立和管理Windows節點池

更新時間:Dec 16, 2025

節點池可以管理叢集中的一組節點資源,例如在節點池中統一管理節點的標籤和汙點。如需建立作業系統類型為Windows的節點,您可以在ACK叢集中建立Windows節點池,並在節點池維度進行kubelet、運行時和作業系統鏡像版本的升級。

使用限制

下表介紹了建立Windows節點池時必須滿足的條件。

限制項

說明

叢集

  • 已建立ACK託管叢集

    僅支援在ACK託管叢集中建立Windows節點池,且需要在已建立的叢集中建立,不支援在建立叢集時建立。
  • 叢集版本為1.20.4及以上。

    如需升級叢集,請參見手動升級叢集
  • 叢集網路類型為Flannel。

  • kube-flannel-ds-windows版本為v0.15.2-aliyun及以上。

容器運行時

僅1.6及以上版本的containerd支援Windows節點池。

如需升級運行時版本,請參見升級節點池

節點池類型

僅支援將非託管節點池建立為Windows節點池。

執行個體規格

  • 不同執行個體規格對Windows節點池的支援情況不同,有些執行個體規格不支援Windows節點池,請多次嘗試。例如,您可以選擇ecs.g6.xlarge,此執行個體規格支援Windows節點池。

  • 執行個體規格為4核 8GB及以上。

    • Windows容器在記憶體使用量超出限制後並不會執行OOM Killed。自2021年05月起,在1.16及之後版本的ACK叢集,新添加的Windows節點啟動時會預留一定的資源(1.5核CPU、2.5 GB RAM、3 GB DISK),以保證Windows系統、kubelet、容器運行時的穩定運行。關於資源預留的更多資訊,請參見節點資源預留策略

      預留資源機制可以減少或避免因Windows工作負載的資源過度分派而導致Windows節點完全停用情況。但當Windows容器應用發生記憶體流失時,依然存在擊垮Windows節點的可能性。
    • Windows容器有一定的Footprint。更多資訊,請參見Windows容器的記憶體要求

下表介紹建立Windows節點池時的使用限制。

限制項

說明

作業系統

Windows節點池支援的作業系統為Windows Server 2019、Windows Server 2022和Windows Server Core,Version 2022。

ACK控制台支援選擇Windows Server 2019、Windows Server 2022和Windows Server Core,Version 2022。如有使用Windows Server Core,Version 2004的需求,請根據ECS2023年公用鏡像發布記錄來選擇最新的鏡像ID建立節點池。

節點數量

預設情況下,每個叢集中最多可包含100個節點。如果您需要添加更多節點,請到配額平台提交申請

雲端服務器

添加已有雲端服務器時,請確保您的專用網路中的ECS執行個體已綁定一個Elastic IP Address(EIP),或者相應VPC已配置NAT Gateway。請確保相應節點能正常訪問公網,否則,添加雲端服務器會失敗。關於添加已有ECS執行個體的注意事項和操作步驟,請參見添加已有節點

建立Windows節點池

控制台

不支援建立預設節點池(default-nodepool)為Windows節點池。請參見上文使用限制,在建立叢集後額外建立Windows節點池。

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇節點管理 > 節點池

  3. 節點池頁面,單擊建立節點池,按照頁面提示完成節點池的建立。

    關於配置項的詳細說明,請參見建立和管理節點池。部分配置項說明如下。

    配置項

    說明

    托管配置

    選擇不開啟。

    容器運行時

    選擇containerd。

    執行個體規格

    • 不同執行個體規格對Windows節點池的支援情況不同,有些執行個體規格不支援Windows節點池,需要進行多次嘗試。例如您可以選擇ecs.g6.xlarge,此執行個體規格支援Windows節點池。

    • 請選擇4核8GB以上的規格。

    • 請選擇非GPU雲端服務器架構的執行個體規格。

      更多關於執行個體規格的資訊,請參見執行個體規格類型系列

    期望節點數

    節點池應該維持的節點數量。指定節點池的期望節點數後,節點池會自動觸發擴容或縮容,將節點數目維持在期望數量。

    作業系統

    選擇Windows作業系統。

    ECS 標籤

    為ECS執行個體添加標籤。

    節點標籤(Labels)

    為叢集節點添加標籤。

    節點池頁面,當節點池狀態顯示為已啟用,表明Windows節點池建立成功。

API

您可以調用CreateClusterNodePool介面建立Windows 節點池,配置節點數量、節點規格等參數。樣本參數如下。

{
  "ClusterId": "ca8ed83XXXXXXXXXXXX5ec197",          // 叢集ID。
  "body": { 
    "nodepool_info": {
      "name": "nodepool-fXXXXXx",                    // 節點池名稱。
      "resource_group_id": "rg-acfmXXXXXXXXsjpq"     // 叢集所屬資源群組 ID,實現不同資源的隔離。  
    },
    "scaling_group": {
      "vswitch_ids": [                               // 叢集節點所在虛擬交換器,當建立零節點的託管版叢集時,該欄位必填。 
        "vsw-bp1XXXXXXXXXXXXX1xm84",
        "vsw-bp1XXXXXXXXXXXX2v6x0a",
        "vsw-bp1XXXXXXXXXXXXXjkxbo"
      ],
      "data_disks": [                                // Worker 節點資料盤類型、大小等配置的組合。
        {
          "category": "cloud_essd",
          "size": 120,
          "encrypted": "false",
          "performance_level": "PL0"
        }
      ],
      "vpc_id": "vpc-bpXXXXXXXXXXXXXXXmgb6",         // 叢集VPC_ID。
      "instance_charge_type": "PostPaid",            // 節點付費類型,取值:PrePaid(預付費執行個體)。 PostPaid(隨用隨付)。預設值:PostPaid 。
      "internet_max_bandwidth_out": 1,               // 節點公網 IP 出頻寬最大值,單位為 Mbps(Mega bit per second),取值範圍:[1,100]
      "soc_enabled": false,                          // 節點開啟等保加固。取值:true:開啟。false:不開啟。
      "security_hardening_os": false,                // 是否開啟阿里雲OS安全強化。取值:true:開啟。  false:不開啟。預設值:false。
      "instance_types": [                            //  執行個體規格。
        "ecs.g6.xlarge"
      ],
      "instance_patterns": [                         // 執行個體屬性配置。
        {
          "Cores": 4,
          "Memory": 16,
          "burst_performance_option": "Exclude",     // 是否為效能突發執行個體規格。  
          "excluded_instance_types": [               // 需要排除的執行個體規格。
            "ecs.c6t.*"
            // ...
          ],
          "instance_type_families": [                // 指定執行個體規格類型系列。  
            "ecs.g6"
            // ...
          ]
        }
      ],
      "login_password": "XXXXXX",
      "login_as_non_root": false,
      "system_disk_category": "cloud_essd",
      "system_disk_size": 40,
      "system_disk_performance_level": "PL0",
      "system_disk_encrypted": false,
      "multi_az_policy": "BALANCE",                // 多可用性區域伸縮組 ECS 執行個體擴縮容策略。
      "platform": "WindowsServer2022",
      "image_id": "win2022_21H2_x64_dtc_en-us_40G_container_alibase_20240220.vhd",
      "image_type": "WindowsServer2022",
      "desired_size": 1
    },
    "kubernetes_config": {                         // 叢集相關配置。
      "cms_enabled": true,                         // 是否在 ECS 節點上安裝CloudMonitor,安裝後可以在CloudMonitor控制台查看所建立 ECS 執行個體的監控資訊,推薦開啟。
      "unschedulable": false,                      // 擴容後的節點是否不可調度。  true:不可調度。  false:可調度。
      "runtime": "containerd",                   
      "runtime_version": "2.1.1"                   // 僅1.6及以上版本的containerd支援Windows節點池。
    },
    "auto_scaling": {                              // 自動Auto Scaling節點池配置。 true:開啟節點池自動調整功能。 false:不開啟自動調整。
      "enable": false
    },
    "tee_config": {                                // 加密計算節點池配置。  true:開啟加密計算。false:不開啟加密計算。
      "tee_enable": false
    },
    "node_config": {                               // 節點配置。    
      "image_acceleration_config": {
        "enable_image_acceleration": false
      }
    }
  }
}

Terraform

您可以參見Terraform概述文檔建立Windows 節點池,配置節點數量、節點規格等參數。樣本參數如下。

provider "alicloud" {
  region = "cn-beijing"
}

resource "alicloud_cs_kubernetes_node_pool" "pool" {
  cluster_id = "c1f801474ea46417d8e83cc482******"
  data_disks {
    category          = "cloud_essd"
    encrypted         = "false"
    performance_level = "PL0"
    size              = 120
  }
  
  desired_size          = 1
  image_id              = "win2019_1809_x64_dtc_en-us_40G_container_alibase_20240220.vhd"
  image_type            = "Windows"
  install_cloud_monitor = true
  instance_charge_type  = "PostPaid"     // 節點付費類型,取值:PrePaid(預付費執行個體)。 PostPaid(隨用隨付)。預設值:PostPaid 。
  instance_types = [
    "ecs.g8i.xlarge"
  ]
  internet_max_bandwidth_out = 0        // 節點公網 IP 出頻寬最大值,單位為 Mbps,取值範圍:[1,100]。
  login_as_non_root          = false
  multi_az_policy            = "BALANCE"
  node_pool_name             = "nodepool-8liYZX"
  password                   = "**********"
  platform                   = "WindowsServer2019"
  resource_group_id          = "rg-acfmvnjn2*****"
  runtime_name               = "containerd"
  runtime_version            = "2.1.5"      // 容器運行時版本,僅1.6及以上版本的containerd支援Windows節點池。
  scaling_config {
    enable      = false
    is_bond_eip = false
  }
  security_hardening_os         = false
  soc_enabled                   = false     // 等保加固。取值:true:開啟等保加固。false:不開啟等保加固。
  system_disk_category          = "cloud_essd"
  system_disk_encrypted         = false     // 是否加密系統硬碟。取值範圍: true:加密。false:不加密。
  system_disk_performance_level = "PL0"
  system_disk_size              = 40
  tee_config {
    tee_enable = false
  }
  unschedulable = false
  vswitch_ids = [
    "vsw-2ze9k65q3wn23wy*****",
    "vsw-2zekovpspoxgn44*****",
    "vsw-2ze54z91jw267e1*****"
  ]
}

升級Windows節點池

節點池升級包括kubelet升級和容器運行時升級。請在升級節點池前,確保已升級控制面至目標版本。

  • kubelet升級:將節點池內節點的kubelet升級到與控制面相同的版本。

  • 容器運行時升級:容器運行時發布新版本後,可升級節點的容器運行時至最新版本。

請參見升級節點池瞭解升級的注意事項和操作入口。配置升級方式時,Windows節點池需選擇通過替換節點系統硬碟的方式進行升級。

升級Windows節點池的作業系統鏡像

可參見更換作業系統將節點池的作業系統鏡像升級至最新版本,以享用新的功能特性、功能最佳化和缺陷修複。

可參見作業系統瞭解鏡像的最新版本。

相關文檔