Ce document vous aide à comprendre le fonctionnement des limites de connexion des volumes persistants pour les disques persistants Compute Engine et les hyperdisques sur les nœuds Google Kubernetes Engine (GKE). Pour planifier correctement les charges de travail et dimensionner les pools de nœuds, il est essentiel de comprendre le nombre maximal de volumes persistants pouvant être associés à un nœud GKE. Si vous souhaitez mieux contrôler la planification des charges de travail, en particulier lorsque vous utilisez plusieurs types de disques avec des limites d'association variables sur une même instance, vous pouvez utiliser un libellé de nœud pour remplacer les limites d'association par défaut.
Ce document s'adresse aux spécialistes du stockage qui créent et allouent du stockage, ainsi qu'aux administrateurs GKE qui gèrent la planification des charges de travail et le dimensionnement des pools de nœuds. Pour en savoir plus sur les rôles courants et les exemples de tâches mentionnés dans le contenu Google Cloud , consultez Rôles utilisateur et tâches courantes de GKE Enterprise.
Présentation
Dans GKE, lorsque vous demandez un PersistentVolume (PV) à l'aide du pilote CSI de disque persistant Compute Engine (pd.csi.storage.gke.io
), un volume de stockage par blocs est provisionné à partir du service de disque persistant Google Cloud .
Lorsque vous activez le pilote CSI de disque persistant Compute Engine (PDCSI) sur les clusters GKE, il calcule et signale la limite d'association de volumes persistants par nœud au kubelet. Sur la base de ces informations, le planificateur Kubernetes prend des décisions de planification pour s'assurer qu'il ne planifie pas trop de pods nécessitant des volumes persistants sur un nœud ayant atteint sa capacité d'attachement. Si le pilote PDCSI a signalé des limites de rattachement inexactes, plus précisément un nombre supérieur à la limite réelle, les pods ne pourront pas être planifiés et resteront bloqués dans l'état Pending
. Cela peut se produire sur les types de machines de troisième génération, tels que C3, qui ont des limites d'association différentes pour les disques Hyperdisk et Persistent Disk.
Comprendre les limites de connexion des volumes persistants
Pour les générations de machines antérieures à la quatrième, le pilote PDCSI de Compute Engine définit une limite de rattachement de volume persistant agrégée de 128 disques (127 disques de données plus un disque de démarrage) pour tous les types de machines. La limite de pièces jointes s'applique à la fois aux volumes Persistent Disk et Hyperdisk combinés. Pour Hyperdisk, la limite d'association est déterminée par le type de machine Compute Engine sous-jacent, le nombre de processeurs virtuels de la machine et le type Hyperdisk spécifique.
Exemple :
- Pour les types de machines de quatrième génération comme C4, le pilote PDCSI indique avec précision une limite d'attachement par défaut à Kubernetes, calculée en fonction du nombre de processeurs virtuels du nœud. La limite de volumes persistants pouvant être associés est généralement comprise entre 8 et 128.
- En revanche, pour les types de machines de troisième génération comme C3, le pilote PDCSI signale une limite d'association par défaut à Kubernetes comme étant la limite fixe de 128 disques, ce qui peut entraîner un échec de planification des pods, car la limite réelle peut être inférieure à 128 en fonction du nombre de processeurs virtuels.
Vous pouvez remplacer la limite d'association par défaut à l'aide d'un libellé de nœud.
Consultez les ressources utiles suivantes dans la documentation Compute Engine :
- Pour connaître les générations de machines Compute Engine disponibles, consultez le tableau de la section Terminologie Compute Engine.
- Pour obtenir la liste des types de machines et des types de disques persistants compatibles, consultez Compatibilité avec les séries de machines.
- Pour connaître les limites maximales d'association d'Hyperdisk en fonction du nombre de processeurs et du type d'Hyperdisk, consultez Nombre maximal de volumes Hyperdisk par VM.
- Pour comprendre comment les limites d'association Hyperdisk sont appliquées à un nœud, consultez Résumé des limites Hyperdisk par VM.
Ignorer la limite de rattachement de volume persistant par défaut
Si vous avez des exigences ou des configurations de nœuds spécifiques pour lesquelles vous souhaitez associer un nombre spécifique de volumes persistants à vos nœuds, vous pouvez remplacer la limite par défaut de volumes persistants associés pour un pool de nœuds à l'aide du libellé de nœud suivant : node-restriction.kubernetes.io/gke-volume-attach-limit-override: VALUE
.
Vous pouvez utiliser ce libellé de nœud sur les versions GKE suivantes :
1.32.4-gke.1698000
ou version ultérieure.1.33.1-gke.1386000
ou version ultérieure.
Nouveau pool de nœuds
Pour créer un pool de nœuds avec une limite d'association de volumes persistants spécifique, exécutez la commande suivante :
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--node-labels=node-restriction.kubernetes.io/gke-volume-attach-limit-override=VALUE
Pool de nœuds existant
Pour modifier la limite actuelle de volumes persistants associés d'un pool de nœuds existant, procédez comme suit :
Mettez à jour la limite d'association sur le pool de nœuds :
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --node-labels=node-restriction.kubernetes.io/gke-volume-attach-limit-override=VALUE
Redémarrez le DaemonSet
pdcsi-node
:kubectl rollout restart ds pdcsi-node -n kube-system
La nouvelle limite de pièces jointes s'applique une fois que les pods
pdcsi-node
sont à l'étatRunning
.
Remplacez les éléments suivants :
NODE_POOL_NAME
: nom du pool de nœuds que vous souhaitez créer ou mettre à jour.CLUSTER_NAME
: nom du cluster pour le pool de nœuds que vous souhaitez créer ou mettre à jour.VALUE
: entier compris entre0
et127
pour spécifier le nouveau nombre de volumes persistants pouvant être associés. Si vous spécifiez une valeur supérieure à 127, le libellé de nœud est ignoré et le pilote PDCSI utilise la limite par défaut de volumes persistants associés. La limite par défaut est de 128 pour les machines de troisième génération et d'une valeur basée sur le nombre de vCPU pour les machines de quatrième génération.
Vérifier le remplacement
Pour vérifier si le remplacement a été appliqué correctement, vérifiez les libellés et la capacité des nœuds.
Dans les commandes suivantes, remplacez NODE_NAME
par le nom d'un nœud qui fait partie du pool de nœuds spécifique auquel vous avez appliqué le libellé de nœud de remplacement.
Vérifiez les libellés de nœuds :
kubectl get node NODE_NAME --show-labels
Le résultat doit inclure le libellé
node-restriction.kubernetes.io/gke-volume-attach-limit-override
.Vérifiez la capacité du nœud :
kubectl describe node NODE_NAME
Le résultat doit inclure la capacité
attachable-volumes-gce-pd
, qui doit correspondre à la valeur de remplacement que vous avez définie pour le pool de nœuds. Pour en savoir plus, consultez Vérifier les ressources pouvant être allouées sur un nœud.
Étapes suivantes
- En savoir plus sur le stockage de volumes persistants GKE
- Découvrez comment fonctionne le planificateur Kubernetes.