Les pools de nœuds gèrent un groupe de nœuds au sein d'un cluster, par exemple en appliquant des libellés et des taints au niveau du pool. Pour exécuter des charges de travail Windows, créez un pool de nœuds Windows dans votre cluster ACK et mettez à niveau kubelet, le moteur d'exécution de conteneurs ainsi que l'image du système d'exploitation au niveau du pool.
Limitations
Respectez les conditions suivantes pour créer un pool de nœuds Windows.
|
Catégorie |
Limitation |
|
Cluster |
|
|
Type de pool de nœuds |
Seuls les pools de nœuds non managés prennent en charge Windows. Le pool de nœuds par défaut ( |
|
Type d'instance |
|
Les restrictions suivantes s'appliquent également.
|
Catégorie |
Limitation |
|
Système d'exploitation |
Windows Server 2019, Windows Server 2022 et Windows Server Core, version 2022. Pour Windows Server Core, version 2004, sélectionnez le dernier ID d'image disponible dans les Enregistrements de publication des images publiques ECS 2023. |
|
Limite de nœuds du cluster |
100 nœuds par cluster par défaut. Pour augmenter cette limite, soumettez un ticket dans Quota Center. |
|
Instances ECS existantes |
Les instances ECS doivent disposer d'adresses IP élastiques (EIP) ou se trouver dans un VPC équipé d'une passerelle NAT, afin que les nœuds puissent accéder à Internet. Consultez la rubrique Ajouter des nœuds existants. |
Réservation des ressources
Depuis mai 2021, les nœuds Windows des clusters ACK version 1.16 ou ultérieure réservent automatiquement les ressources suivantes au démarrage :
1,5 vCPU
2,5 Go de RAM
3 Go d'espace disque
Cela garantit la stabilité du système d'exploitation, de kubelet et du moteur d'exécution. Les conteneurs Windows ne déclenchent pas de suppression OOM lorsque les limites de mémoire sont dépassées, mais une fuite de mémoire dans un conteneur peut toujours provoquer un plantage du nœud. Consultez la rubrique Politique de réservation des ressources des nœuds et la page Configuration requise en matière de mémoire pour les conteneurs Windows.
Créer un pool de nœuds Windows
Console
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster cible, puis choisissez Nodes > Node Pools dans le volet de navigation de gauche.
-
Sur la page Node Pools, cliquez sur Create Node Pool et configurez les paramètres suivants. Consultez la rubrique Créer et gérer des pools de nœuds.
Paramètre
Paramétrage
Configure Managed Node Pool
Sélectionnez Disable
Container Runtime
Sélectionnez containerd
Instance Type
Sélectionnez un type d'instance disposant d'au moins 4 vCPU et de 8 Go de mémoire, par exemple
ecs.g6.xlarge. Ne sélectionnez pas de types d'instances Elastic GPU Service. Consultez la rubrique Familles d'instances.Expected Number of Nodes
Nombre cible de nœuds. Le pool se met à l'échelle automatiquement pour correspondre à cette valeur.
Operating System
Sélectionnez une image Windows Server
ECS Tags
(Facultatif) Tags à appliquer aux instances ECS sous-jacentes
Node Labels
(Facultatif) Libellés Kubernetes à appliquer aux nœuds
Terminez les étapes restantes et envoyez le formulaire.
Le pool de nœuds est prêt lorsque son Status passe à Active sur la page Node Pools.
API
Appelez l'opération CreateClusterNodePool pour créer un pool de nœuds Windows par programmation.
{
"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
}
}
}
}
Paramètres clés :
|
Paramètre |
Description |
|
|
Types d'instances pour le pool de nœuds. Ils doivent respecter les spécifications minimales (4 vCPU, 8 Go de mémoire). |
|
|
Version de Windows. Valeurs valides : |
|
|
Doit correspondre à |
|
|
Méthode de facturation. |
|
|
Doit être |
|
|
containerd 1.6 ou version ultérieure (par exemple, |
|
|
Lorsque ce paramètre est défini sur |
|
|
Activez le calcul confidentiel. Définissez ce paramètre sur |
|
|
Activez le durcissement de sécurité du schéma de protection multiniveau (MLPS) 2.0. |
Terraform
Utilisez la ressource alicloud_cs_kubernetes_node_pool pour créer un pool de nœuds Windows. Consultez la rubrique Présentation de 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*****"
]
}
Mettre à niveau un pool de nœuds Windows
La mise à niveau d'un pool de nœuds Windows concerne deux composants :
Kubelet : met à niveau kubelet sur tous les nœuds pour qu'il corresponde à la version du plan de contrôle.
Moteur d'exécution de conteneurs : met à niveau containerd vers la dernière version prise en charge.
Mettez à niveau le plan de contrôle vers la version cible avant de mettre à niveau le pool de nœuds.
Effectuez la mise à niveau en remplaçant les disques système des nœuds. Consultez la rubrique Mettre à niveau un pool de nœuds.
Mettre à niveau l'image du système d'exploitation d'un pool de nœuds Windows
Mettez à niveau l'image du système d'exploitation du pool de nœuds pour bénéficier des dernières fonctionnalités et correctifs. Consultez la rubrique Remplacer le système d'exploitation.
Les versions d'image disponibles sont répertoriées dans la rubrique Systèmes d'exploitation.
Étapes suivantes
Déployez une application Windows sur le pool de nœuds : Créer une application Windows.
Gérez les pics de trafic imprévisibles sans provisionner de nœuds fixes : (Aperçu invitation) Planifier des pods sur des nœuds virtuels Windows.