節點池可以管理叢集中的一組節點資源,例如在節點池中統一管理節點的標籤和汙點。如需建立作業系統類型為Windows的節點,您可以在ACK叢集中建立Windows節點池,並在節點池維度進行kubelet、運行時和作業系統鏡像版本的升級。
使用限制
下表介紹了建立Windows節點池時必須滿足的條件。
限制項 | 說明 |
叢集 |
|
容器運行時 | 僅1.6及以上版本的containerd支援Windows節點池。 如需升級運行時版本,請參見升級節點池。 |
節點池類型 | 僅支援將非託管節點池建立為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節點池。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在節點池頁面,單擊建立節點池,按照頁面提示完成節點池的建立。
關於配置項的詳細說明,請參見建立和管理節點池。部分配置項說明如下。
配置項
說明
托管配置
選擇不開啟。
容器運行時
選擇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節點池的作業系統鏡像
可參見更換作業系統將節點池的作業系統鏡像升級至最新版本,以享用新的功能特性、功能最佳化和缺陷修複。
可參見作業系統瞭解鏡像的最新版本。
相關文檔
可參見建立Windows應用將應用部署在Windows節點上。
如您的業務有不易提前預測的瞬時波峰且需使用Windows節點,推薦使用Windows虛擬節點,並將Pod調度到該虛擬節點上,請參見(邀測)調度Pod到Windows虛擬節點。