Pools de nós gerenciam grupos de nós em um cluster, permitindo configurar rótulos e taints no nível do pool. Para executar workloads Windows, crie um pool de nós Windows no cluster ACK e atualize o kubelet, o runtime de contêineres e a imagem do sistema operacional no nível do pool.
Limitações
Atenda aos seguintes requisitos para criar um pool de nós Windows.
|
Categoria |
Limitação |
|
Cluster |
|
|
Tipo de pool de nós |
Apenas pools de nós não gerenciados oferecem suporte ao Windows. Não é possível converter o pool de nós padrão ( |
|
Tipo de instância |
|
As restrições a seguir também se aplicam.
|
Categoria |
Limitação |
|
Sistema operacional |
Windows Server 2019, Windows Server 2022 e Windows Server Core, Version 2022. Para Windows Server Core, Version 2004, selecione o ID de imagem mais recente nos registros de lançamento de imagens públicas ECS 2023. |
|
Limite de nós do cluster |
Padrão de 100 nós por cluster. Para aumentar o limite, envie um ticket no Quota Center. |
|
Instâncias ECS existentes |
As instâncias ECS devem ter endereços IP elásticos (EIPs) ou estar em uma VPC com NAT Gateway para que os nós acessem a internet. Consulte Adicionar nós existentes. |
Reserva de recursos
Desde maio de 2021, nós Windows em clusters ACK versão 1,16 ou posterior reservam automaticamente os seguintes recursos na inicialização:
1,5 vCPU
2,5 GB de RAM
3 GB de espaço em disco
Essa reserva garante a estabilidade do sistema operacional, do kubelet e do runtime. Contêineres Windows não acionam eliminações OOM ao exceder os limites de memória, mas vazamentos de memória no contêiner ainda podem travar o nó. Consulte Política de reserva de recursos do nó e Requisitos de memória para contêineres Windows.
Criar um pool de nós Windows
Console
Faça login no console ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster desejado e escolha Nodes > Node Pools no painel de navegação à esquerda.
-
Na página Node Pools, clique em Create Node Pool e configure os parâmetros a seguir. Consulte Criar e gerenciar pools de nós.
Parâmetro
Configuração
Configure Managed Node Pool
Selecione Disable
Container Runtime
Selecione containerd
Instance Type
Escolha um tipo de instância com pelo menos 4 vCPUs e 8 GB de memória, como
ecs.g6.xlarge. Não selecione tipos de instância do Elastic GPU Service. Consulte Famílias de instâncias.Expected Number of Nodes
Quantidade alvo de nós. O pool dimensiona automaticamente para corresponder a esse valor.
Operating System
Selecione uma imagem Windows Server
ECS Tags
(Opcional) Tags para aplicar nas instâncias ECS subjacentes
Node Labels
(Opcional) Rótulos Kubernetes para aplicar aos nós
Conclua as etapas restantes e envie.
O pool de nós estará pronto quando o Status mudar para Active na página Node Pools.
API
Chame CreateClusterNodePool para criar um pool de nós Windows programaticamente.
{
"ClusterId": "ca8ed83XXXXXXXXXXXX5ec197",
"body": {
"nodepool_info": {
"name": "nodepool-fXXXXXx",
"resource_group_id": "rg-acfmXXXXXXXXsjpq"
},
"scaling_group": {
"vswitch_ids": [
"vsw-bp1XXXXXXXXXXXXX1xm84",
"vsw-bp1XXXXXXXXXXXX2v6x0a",
"vsw-bp1XXXXXXXXXXXXXjkxbo"
],
"data_disks": [
{
"category": "cloud_essd",
"size": 120,
"encrypted": "false",
"performance_level": "PL0"
}
],
"vpc_id": "vpc-bpXXXXXXXXXXXXXXXmgb6",
"instance_charge_type": "PostPaid",
"internet_max_bandwidth_out": 1,
"soc_enabled": false,
"security_hardening_os": 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",
"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,
"unschedulable": false,
"runtime": "containerd",
"runtime_version": "2.1.1"
},
"auto_scaling": {
"enable": false
},
"tee_config": {
"tee_enable": false
},
"node_config": {
"image_acceleration_config": {
"enable_image_acceleration": false
}
}
}
}
Principais parâmetros:
|
Parâmetro |
Descrição |
|
|
Tipos de instância para o pool de nós. Devem atender à especificação mínima (4 vCPUs, 8 GB de memória). |
|
|
Versão do Windows. Valores válidos: |
|
|
Deve corresponder a |
|
|
Método de faturamento. |
|
|
Deve ser |
|
|
containerd 1,6 ou posterior (por exemplo, |
|
|
Quando definido como |
|
|
Ativa computação confidencial. Defina como |
|
|
Ativa o endurecimento de segurança Multi-Level Protection Scheme (MLPS) 2.0. |
Terraform
Use o recurso alicloud_cs_kubernetes_node_pool para criar um pool de nós Windows. Consulte Visão geral do Terraform.
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"
instance_types = ["ecs.g8i.xlarge"]
internet_max_bandwidth_out = 0
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"
scaling_config {
enable = false
is_bond_eip = false
}
security_hardening_os = false
soc_enabled = false
system_disk_category = "cloud_essd"
system_disk_encrypted = 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*****"
]
}
Atualizar um pool de nós Windows
A atualização de um pool de nós Windows abrange dois componentes:
Kubelet: atualiza o kubelet em todos os nós para corresponder à versão do plano de controle.
Runtime de contêineres: atualiza o containerd para a versão compatível mais recente.
Atualize o plano de controle para a versão alvo antes de atualizar o pool de nós.
Atualize substituindo os discos do sistema dos nós. Consulte Atualizar um pool de nós.
Atualizar a imagem do SO de um pool de nós Windows
Atualize a imagem do SO do pool de nós para obter os recursos e correções mais recentes. Consulte Substituir o sistema operacional.
As versões de imagem disponíveis estão listadas em Sistemas operacionais.
Próximas etapas
Implante uma aplicação Windows no pool de nós: Criar uma aplicação Windows.
Gerencie picos de tráfego imprevisíveis sem provisionar nós fixos: (Visualização por convite) Agendar pods em nós virtuais Windows.