Vous trouverez sur cette page la procédure à suivre pour configurer l'autoscaling de vos clusters Google Kubernetes Engine standards (GKE). Pour en savoir plus sur le fonctionnement de l'autoscaler de cluster, consultez la section Autoscaler de cluster.
Avec les clusters Autopilot, vous n'avez pas à vous soucier du provisionnement des nœuds, ni de la gestion des pools de nœuds, car les nœuds sont automatiquement provisionnés et font l'objet d'un scaling automatique pour répondre aux exigences de vos charges de travail.
Utiliser l'autoscaler de cluster
Dans les sections suivantes, nous expliquons comment utiliser l'autoscaler de cluster.
Créer un cluster avec autoscaling
Vous pouvez créer un cluster avec l'autoscaling activé à l'aide de la Google Cloud CLI ou de la console Google Cloud .
gcloud
Pour créer un cluster avec l'autoscaling activé, utilisez l'option --enable-autoscaling
et spécifiez les valeurs de --min-nodes
et --max-nodes
:
gcloud container clusters create CLUSTER_NAME \
--enable-autoscaling \
--num-nodes NUM_NODES \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES \
--location=CONTROL_PLANE_LOCATION
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster à créerNUM_NODES
: nombre de nœuds à créer dans chaque emplacement.MIN_NODES
: nombre minimal de nœuds en cas de scaling automatique pour le pool de nœuds spécifié par zone. Pour spécifier le nombre minimal de nœuds pour l'ensemble du pool de nœuds dans GKE version 1.24 ou ultérieure, utilisez--total-min-nodes
. Les options--total-min-nodes
et--total-max-nodes
sont mutuellement exclusives avec les options--min-nodes
et--max-nodes
.MAX_NODES
: nombre maximal de nœuds en cas de scaling automatique pour le pool de nœuds spécifié par zone. Pour spécifier le nombre maximal de nœuds pour l'ensemble du pool de nœuds dans GKE version 1.24 ou ultérieure, utilisez--total-max-nodes
. Les options--total-min-nodes
et--total-max-nodes
sont mutuellement exclusives avec les options--min-nodes
et--max-nodes
.CONTROL_PLANE_LOCATION
: emplacement Compute Engine du plan de contrôle de votre cluster. Indiquez une région pour les clusters régionaux ou une zone pour les clusters zonaux.
Exemple : Création d'un cluster avec l'autoscaling des nœuds activé et le nombre minimal et maximal de nœuds
La commande suivante crée un cluster avec 90 nœuds, ou 30 nœuds dans chacune des trois zones présentes dans la région. L'autoscaling des nœuds est activé, et redimensionne le nombre de nœuds en fonction de la charge du cluster. L'autoscaler de cluster peut réduire la taille du pool de nœuds par défaut à 15 nœuds, ou augmenter sa taille jusqu'à un maximum de 50 nœuds par zone.
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes=30 \
--min-nodes=15 --max-nodes=50 \
--location=us-central
Exemple : Créer un cluster avec l'autoscaling des nœuds activé et le nombre total de nœuds
La commande suivante crée un cluster avec 30 nœuds, ou 10 nœuds dans chacune des trois zones présentes dans la région. L'autoscaling des nœuds est activé, et redimensionne le nombre de nœuds en fonction de la charge du cluster. Dans cet exemple, la taille totale du cluster peut être comprise entre 10 et 60 nœuds, quelle que soit la répartition entre les zones.
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes 10 \
--location us-central1 \
--total-min-nodes 10 --total-max-nodes 60
Console
Pour créer un cluster dans lequel l'autoscaling est activé pour le pool de nœuds par défaut, procédez comme suit :
Dans la console Google Cloud , accédez à la page Créer un cluster Kubernetes.
Configurez le cluster selon vos besoins.
Dans le volet de navigation, sous Pools de nœuds, cliquez sur default-pool.
Cochez la case Activer l'autoscaling.
Modifiez les valeurs des champs Nombre minimal de nœuds et Nombre maximal de nœuds selon vos besoins.
Cliquez sur Créer.
Ajouter un pool de nœuds avec autoscaling
Vous pouvez créer un pool de nœuds en activant l'autoscaling à l'aide de gcloud CLI ou de la console Google Cloud .
gcloud
Pour ajouter un pool de nœuds avec autoscaling à un cluster existant, utilisez la commande suivante :
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-autoscaling \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--location=CONTROL_PLANE_LOCATION
Remplacez les éléments suivants :
POOL_NAME
: nom du pool de nœuds souhaité.CLUSTER_NAME
: nom du cluster dans lequel le pool de nœuds est créé.MIN_NODES
: nombre minimal de nœuds en cas de scaling automatique pour le pool de nœuds spécifié par zone. Pour spécifier le nombre minimal de nœuds pour l'ensemble du pool de nœuds dans GKE version 1.24 ou ultérieure, utilisez--total-min-nodes
. Les options--total-min-nodes
et--total-max-nodes
sont mutuellement exclusives avec les options--min-nodes
et--max-nodes
.MAX_NODES
: nombre maximal de nœuds en cas de scaling automatique pour le pool de nœuds spécifié par zone. Pour spécifier le nombre maximal de nœuds pour l'ensemble du pool de nœuds dans GKE version 1.24 ou ultérieure, utilisez--total-max-nodes
. Les options--total-min-nodes
et--total-max-nodes
sont mutuellement exclusives avec les options--min-nodes
et--max-nodes
.CONTROL_PLANE_LOCATION
: emplacement Compute Engine du plan de contrôle de votre cluster. Indiquez une région pour les clusters régionaux ou une zone pour les clusters zonaux.
Exemple : Ajout d'un pool de nœuds avec autoscaling des nœuds activé
La commande suivante crée un pool de nœuds avec un autoscaling de nœud qui effectue un scaling du pool de nœuds vers un maximum de 5 nœuds et un minimum de 1 nœud :
gcloud container node-pools create my-node-pool \
--cluster my-cluster \
--enable-autoscaling \
--min-nodes 1 --max-nodes 5 \
--location us-central1-c
Console
Pour ajouter un pool de nœuds avec autoscaling à un cluster existant, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans la console Google Cloud .
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.
Cliquez sur add_box Ajouter un pool de nœuds.
Configurez le pool de nœuds selon vos préférences.
Sous Taille, cochez la case Activer l'autoscaling.
Modifiez les valeurs des champs Nombre minimal de nœuds et Nombre maximal de nœuds selon vos besoins.
Cliquez sur Créer.
Activer l'autoscaling pour un pool de nœuds existant
Vous pouvez activer l'autoscaling pour un pool de nœuds existant à l'aide de gcloud CLI ou de la console Google Cloud .
gcloud
Pour activer l'autoscaling pour un pool de nœuds existant, utilisez la commande suivante :
gcloud container clusters update CLUSTER_NAME \
--enable-autoscaling \
--node-pool=POOL_NAME \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--location=CONTROL_PLANE_LOCATION
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster à mettre à jour.POOL_NAME
: nom du pool de nœuds souhaité. Si vous n'avez qu'un seul pool de nœuds, indiquezdefault-pool
comme valeur.MIN_NODES
: nombre minimal de nœuds en cas de scaling automatique pour le pool de nœuds spécifié par zone. Pour spécifier le nombre minimal de nœuds pour l'ensemble du pool de nœuds dans GKE version 1.24 ou ultérieure, utilisez--total-min-nodes
. Les options--total-min-nodes
et--total-max-nodes
sont mutuellement exclusives avec les options--min-nodes
et--max-nodes
.MAX_NODES
: nombre maximal de nœuds en cas de scaling automatique pour le pool de nœuds spécifié par zone. Pour spécifier le nombre maximal de nœuds pour l'ensemble du pool de nœuds dans GKE version 1.24 ou ultérieure, utilisez--total-max-nodes
. Les options--total-min-nodes
et--total-max-nodes
sont mutuellement exclusives avec les options--min-nodes
et--max-nodes
.CONTROL_PLANE_LOCATION
: emplacement Compute Engine du plan de contrôle de votre cluster. Indiquez une région pour les clusters régionaux ou une zone pour les clusters zonaux.
Console
Pour activer l'autoscaling pour un pool de nœuds existant, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans la console Google Cloud .
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.
Cliquez sur l'onglet Nœuds.
Sous Pools de nœuds, cliquez sur le nom du pool de nœuds concerné, puis sur edit Modifier.
Sous Taille, cochez la case Activer l'autoscaling.
Modifiez les valeurs des champs Nombre minimal de nœuds et Nombre maximal de nœuds selon vos besoins.
Cliquez sur Enregistrer.
Vérifier que l'autoscaling est activé pour le pool de nœuds existant
Vérifiez que votre cluster utilise l'autoscaling avec Google Cloud CLI ou la console Google Cloud .
gcloud
Décrivez les pools de nœuds dans le cluster :
gcloud container node-pools describe NODE_POOL_NAME --cluster=CLUSTER_NAME |grep autoscaling -A 1
Remplacez les éléments suivants :
POOL_NAME
: nom du nouveau pool de nœuds que vous choisissez.CLUSTER_NAME
: nom du cluster.
Si l'autoscaling est activé, la sortie ressemble à ce qui suit :
autoscaling:
enabled: true
Console
Accédez à la page Google Kubernetes Engine dans la console Google Cloud .
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez vérifier.
Cliquez sur l'onglet Nœuds.
Sous Pools de nœuds, vérifiez l'état
Autoscalling
du pool de nœuds.
Créer un pool de nœuds donnant la priorité à l'utilisation des réservations inutilisées
Vous pouvez utiliser l'option --location_policy=ANY
lorsque vous créez un pool de nœuds pour indiquer à l'autoscaler de cluster de donner la priorité à l'utilisation des réservations inutilisées :
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location_policy=ANY
Remplacez les éléments suivants :
POOL_NAME
: nom du nouveau pool de nœuds que vous choisissez.CLUSTER_NAME
: nom du cluster.
Désactiver l'autoscaling pour un pool de nœuds existant
Vous pouvez désactiver l'autoscaling pour un pool de nœuds existant à l'aide de gcloud CLI ou de la console Google Cloud .
gcloud
Pour désactiver l'autoscaling pour un pool de nœuds spécifique, utilisez l'option --no-enable-autoscaling
:
gcloud container clusters update CLUSTER_NAME \
--no-enable-autoscaling \
--node-pool=POOL_NAME \
--location=CONTROL_PLANE_LOCATION
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster à mettre à jour.POOL_NAME
: nom du pool de nœuds souhaité.CONTROL_PLANE_LOCATION
: emplacement Compute Engine du plan de contrôle de votre cluster. Indiquez une région pour les clusters régionaux ou une zone pour les clusters zonaux.
La taille du cluster est fixée à la taille actuelle par défaut du pool de nœuds du cluster, qui peut être mise à jour manuellement.
Console
Pour désactiver l'autoscaling pour un pool de nœuds spécifique, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans la console Google Cloud .
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.
Cliquez sur l'onglet Nœuds.
Sous Pools de nœuds, cliquez sur le nom du pool de nœuds concerné, puis sur edit Modifier.
Sous Taille, décochez la case Activer l'autoscaling.
Cliquez sur Enregistrer.
Redimensionner un pool de nœuds
Pour les clusters avec autoscaling activé, l'autoscaler de cluster redimensionne automatiquement les pools de nœuds dans les limites spécifiées par la taille minimale (--min-nodes
) et la taille maximale (--max-nodes
) ou la taille totale minimale (--total-min-nodes
) et la taille totale maximale (--total-max-nodes
). Ces options s'excluent mutuellement. Vous ne pouvez pas redimensionner manuellement un pool de nœuds en modifiant ces valeurs.
Si vous souhaitez redimensionner manuellement un pool de nœuds dans votre cluster pour lequel l'autoscaling est activé, procédez comme suit :
- Désactivez l'autoscaling sur le pool de nœuds.
- Redimensionnez manuellement le cluster.
- Réactivez l'autoscaling en spécifiant la taille minimale et la taille maximale du pool de nœuds.
Empêcher la planification de pods sur des nœuds sélectionnés
Vous pouvez utiliser des rejets startup
ou status
pour empêcher la planification de pods sur des nœuds sélectionnés, en fonction du cas d'utilisation.
Cette fonctionnalité est disponible dans GKE dans la version 1.28 et ultérieure.
Rejets de démarrage
Utilisez des rejets startup
lorsqu'une opération doit être terminée avant que des pods puissent s'exécuter sur le nœud. Par exemple, les pods ne doivent pas s'exécuter tant que l'installation des pilotes sur le nœud n'est pas terminée.
L'autoscaler de cluster considère que les nœuds rejetés avec des rejets startup
ne sont pas prêts, mais qu'ils seront pris en compte lors de la logique de scaling à la hausse, en supposant qu'ils seront prêts sous peu.
Les rejets de démarrage correspondent à tous les rejets portant le préfixe startup-taint.cluster-autoscaler.kubernetes.io/
.
Taints d'état
Utilisez des rejets status
lorsque GKE ne doit pas utiliser un nœud donné pour exécuter des pods.
L'autoscaler de cluster considère que les nœuds rejetés avec des rejets status
sont prêts, mais les ignore lors de la logique de scaling à la hausse. Même si le nœud rejeté est prêt, aucun pod ne doit s'exécuter. Si les pods ont besoin de plus de ressources, GKE effectue un scaling à la hausse du cluster et ignore les nœuds contaminés.
Les rejets d'état correspondent à tous les rejets portant le préfixe status-taint.cluster-autoscaler.kubernetes.io/
.
Ignorer les rejets
Les rejets à ignorer sont définis comme étant tous les rejets portant le préfixe ignore-taint.cluster-autoscaler.kubernetes.io/
.
Dépannage
Pour obtenir des conseils de dépannage, consultez les pages suivantes :
- Résoudre les problèmes liés à l'autoscaler de cluster qui n'effectue pas de scaling à la baisse.
- Résoudre les problèmes liés à l'autoscaler de cluster qui n'effectue pas de scaling à la hausse.