Cette page explique comment vous assurer que vous pouvez utiliser des stratégies de mise à niveau de nœuds pour apporter des modifications aux nœuds de votre cluster. Nous vous recommandons de vérifier si votre projet dispose de ressources suffisantes pour mettre à jour vos pools de nœuds Google Kubernetes Engine (GKE) Standard en fonction de la stratégie que vous choisissez.
Ressources requises pour les mises à niveau des nœuds
Les mises à niveau de nœuds peuvent nécessiter que GKE crée temporairement des nœuds supplémentaires, en fonction de la stratégie et de la configuration de nœuds que vous avez choisies. De ce fait, GKE peut nécessiter des ressources supplémentaires pour mettre à niveau le pool de nœuds.
Tous les nœuds créés par GKE, y compris les nœuds utilisés pour les mises à niveau, sont soumis au quota de ressources de votre projet, à la disponibilité des ressources et à la capacité de réservation, pour les pools de nœuds avec une affinité de réservation spécifique.
Nous vous recommandons vivement de vérifier que vous disposez de ressources suffisantes si vous avez des exigences particulières liées au type de machine et des contraintes de capacité. Vous devrez peut-être configurer une stratégie qui nécessite moins de ressources pour vous assurer que vous pouvez mettre à niveau vos nœuds ou effectuer d'autres actions, comme créer une réservation. Pour en savoir plus, consultez la section Effectuer une mise à niveau dans un environnement à ressources limitées.
Ressources nécessaires pour différentes stratégies de mise à niveau
Les sections suivantes décrivent les ressources supplémentaires requises pour utiliser les stratégies de mise à niveau disponibles. Si vous rencontrez des problèmes de mise à niveau, vérifiez les opérations de mise à niveau et suivez les instructions pour résoudre les erreurs de mise à niveau.
Ressources pour les mises à niveau de surutilisation
Les mises à niveau de la surutilisation sont la stratégie de mise à niveau par défaut de nœuds. Comme les mises à niveau de surutilisation créent des VM supplémentaires (si maxSurge est défini sur une valeur supérieure à zéro) avant de drainer et de supprimer les anciens nœuds, les mises à niveau peuvent échouer si votre projet manque de ressources.
Si les ressources disponibles sont inférieures au nombre de nœuds spécifié dans maxSurge, le nombre de mises à niveau parallèles est inférieur à maxSurge plus maxUnavailable. Si vous ne disposez pas de capacité supplémentaire, découvrez comment effectuer la mise à niveau dans un environnement soumis à des contraintes de ressources.
Le tableau ci-dessous décrit des exemples illustrant différents comportements de mises à niveau :
| Paramètres de mise à niveau | Nombre de nœuds supplémentaires autorisés par les ressources disponibles | Résultat |
|---|---|---|
| maxSurge: 5 maxUnavailable: 0 | 5 | Met à jour cinq nœuds en parallèle. |
| maxSurge: 5 maxUnavailable: 0 | 2 | Ne met à jour que deux nœuds en parallèle. |
| maxSurge: 5 maxUnavailable: 0 | 0 | Échec de la mise à niveau, car les paramètres de mise à niveau ne permettent pas d'afficher des nœuds supplémentaires et de redémarrer ceux qui existent déjà. GKE continue de tenter la mise à niveau automatique jusqu'à ce que l'opération aboutisse. |
| maxSurge: 5 maxUnavailable: 1 | 5 | Met à niveau six nœuds en parallèle, tout en veillant à ce que le pool de nœuds ne perde temporairement qu'un seul nœud en raison de la mise à niveau. |
| maxSurge: 5 maxUnavailable: 1 | 2 | Ne met à niveau que trois nœuds en parallèle, tout en veillant à ce que le pool de nœuds ne manque pas plus d'un nœud en raison de la mise à niveau. |
| maxSurge: 5 maxUnavailable: 1 | 0 | Ne met à jour qu'un seul nœud à la fois en recréant chaque nœud au moyen d'une mise à niveau progressive. |
Ressources pour les mises à niveau bleu-vert
Les mises à niveau bleu-vert doublent temporairement le nombre de nœuds dans un pool de nœuds, ce qui signifie que votre pool de nœuds a temporairement besoin de deux fois plus de ressources. Si vous ne disposez pas de ressources suffisantes et que vous avez configuré votre pool de nœuds pour utiliser cette stratégie, configurez les mises à niveau de la surutilisation si vous devez débloquer les mises à niveau. Lorsque vous configurez cette stratégie, veillez à configurer les paramètres de mise à niveau de la surutilisation qui fonctionnent avec les ressources disponibles pour les nœuds du pool de nœuds. Pour en savoir plus, consultez la section précédente, Ressources pour les mises à niveau de la surutilisation.
Vérifier les opérations de mise à niveau pour détecter les échecs liés aux ressources
Pour obtenir plus d'informations sur les opérations de mise à niveau, ainsi que sur les possibilités et les causes de leurs échecs, vérifiez leurs objets. Pour répertorier les objets d'une opération de mise à niveau, exécutez la commande suivante :
gcloud container operations list \
--filter="STATUS=DONE AND TYPE=UPGRADE_NODES AND targetLink:https://container.googleapis.com/v1/projects/PROJECT_ID/zones/COMPUTE_ZONE/clusters/CLUSTER_NAME"
Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projet.COMPUTE_ZONE: zone Compute Engine de votre cluster.CLUSTER_NAME: nom du cluster
Si votre mise à niveau la plus récente a échoué en raison d'un quota de ressources insuffisant, le résultat ressemble à ceci :
gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Insufficient quota to satisfy the request: waiting on IG: instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
\ is still CREATING. Last attempt errors: [QUOTA_EXCEEDED] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
\ creation failed: Quota 'IN_USE_ADDRESSES' exceeded. Limit: 50.0 in region us-central1.\
...
Si la raison est due à une réservation insuffisante, le résultat ressemble à ce qui suit :
gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Reservation does not have enough resources for the request: waiting on IG:\
\ instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
\ is still CREATING. Last attempt error: [CONDITION_NOT_MET] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
\ creation failed: Specified reservation 'foo' does not have available resources\
\ for the request."
Si la raison est une capacité insuffisante, des messages d'erreur de disponibilité des ressources s'affichent.
Corriger les erreurs de mise à niveau
Si la mise à niveau échoue en raison de ressources insuffisantes, procédez comme suit :
- Envisagez une stratégie de mise à niveau moins gourmande en ressources. Si vous utilisez des mises à niveau bleu-vert, envisagez les mises à niveau de la surutilisation.
- Vérifiez si votre projet comporte des ressources Compute Engine qui consomment des ressources, mais ne sont plus nécessaires. Si c'est le cas, supprimez-les, puis relancez la mise à niveau.
- Si les deux premières étapes ne permettent pas de débloquer la mise à niveau, demandez une augmentation du quota ou augmentez la taille de la réservation concernée.
- Si vous travaillez dans un environnement à ressources limitées, par exemple avec des exigences spéciales pour le type de machine et des contraintes de capacité, consultez la section suivante pour connaître la procédure à suivre pour débloquer les mises à niveau.
Mettre à niveau dans un environnement à ressources limitées
Si la capacité de Google Cloud est limitée pour une ressource spécifique utilisée par votre pool de nœuds, nous vous recommandons d' utiliser une réservation pour les GPU et les TPU. Pour les pools de nœuds qui ne contiennent que des processeurs, nous vous recommandons de mettre à niveau les processeurs à l'aide d'une capacité fixe.
Ces deux stratégies peuvent vous aider à vous assurer que vous disposez de ressources suffisantes pour effectuer une mise à niveau de version. Si vous ne disposez pas de ressources suffisantes, vous ne pourrez peut-être pas mettre à niveau vos nœuds tant que vous n'aurez pas accès à davantage de capacité.
Si vous ne disposez pas de capacité supplémentaire, vous ne pouvez pas utiliser de mises à niveau bleu-vert.
Lorsque vous utilisez des mises à niveau de surutilisation dans un environnement à ressources limitées, tenez compte des points suivants :
- Lorsque vous utilisez des nœuds de surutilisation pour une mise à niveau, des nœuds supplémentaires sont nécessaires, ce qui peut être difficile à réaliser dans un environnement à ressources limitées. Pour en savoir plus sur ce paramètre, consultez
maxSurge: GKE crée un nœud de surutilisation avant de supprimer un nœud existant. - Lorsque vous définissez le champ
maxUnavailablesur une valeur supérieure à zéro et que la capacité ne provient pas d'une réservation, dans certains cas, GKE libère temporairement la capacité du nœud lors de sa mise à niveau. Cela signifie que si la capacité est limitée, vous risquez de la perdre. Pour en savoir plus, consultezmaxUnavailable: GKE rend un nœud existant indisponible pour le recréer.
Suivez les instructions ci-dessous, selon que vous avez ou non une réservation pour votre pool de nœuds à mettre à niveau.
Mettre à niveau avec une capacité fixe
Pour les processeurs, afin d'effectuer une mise à niveau dans un environnement à ressources limitées, utilisez une capacité fixe. Pour ce faire, utilisez les mises à niveau de surutilisation et définissez le paramètre maxUnavailable sur une valeur supérieure à zéro. Pour en savoir plus, consultez
maxUnavailable : GKE rend un nœud existant indisponible pour le recréer.
La mise à niveau à l'aide d'une capacité fixe vous permet d'effectuer des mises à niveau lorsque vous ne pouvez pas obtenir de capacité supplémentaire et vous aide à éviter de perdre la capacité existante pendant la mise à niveau.
Passer à une édition supérieure avec une capacité limitée avec réservation
Pour les GPU et les TPU, afin d'effectuer une mise à niveau dans un environnement à capacité limitée, utilisez une réservation et ajustez les paramètres de mise à niveau de la surutilisation pour la vitesse et la fiabilité.
Si vous disposez d'une capacité supplémentaire dans la réservation, vous pouvez utiliser maxSurge pour créer des nœuds de surutilisation. Définissez maxSurge en fonction du nombre de nœuds que vous souhaitez perturber simultanément et de la capacité supplémentaire dont vous disposez. Par exemple, définissez maxSurge=1;maxUnavailable=0 si vous ne souhaitez perturber qu'un seul nœud à la fois ou si vous ne pouvez créer qu'un seul nœud supplémentaire.
Si vous ne disposez pas de capacité supplémentaire, vous pouvez utiliser maxUnavailable avec une configuration telle que maxSurge=0;maxUnavailable=1, car la capacité est réservée. Cette configuration perturbe un nœud à la fois, en le recréant pour le mettre à jour. Nous vous recommandons cette approche pour
effectuer la maintenance de l'hôte pour les nœuds exécutant des charges de travail d'entraînement et d'inférence.
Étape suivante
- Apprenez-en plus sur les stratégies de mise à niveau de nœuds.
- Obtenez davantage d'informations sur les quotas de ressources.
- Découvrez-en plus sur la consommation des réservations.