Lorsque vous essayez de modifier votre cluster Google Kubernetes Engine (GKE) ou ses pools de nœuds, votre action peut être temporairement bloquée, car une autre opération est en cours d'exécution. Ce problème peut retarder les mises à jour critiques, l'administration des clusters et les déploiements d'applications.
Cette page vous explique comment identifier l'opération en cours d'exécution. Comprendre l'opération active vous aide à estimer le délai et à déterminer quand réessayer votre action.
Ces informations sont importantes à la fois pour les développeurs d'applications, qui peuvent rencontrer ces limites lors du déploiement ou de la modification d'applications, et pour les administrateurs et opérateurs de plate-forme, qui gèrent le cycle de vie global du cluster, les mises à niveau et doivent résoudre les problèmes liés aux tâches administratives bloquées. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenuGoogle Cloud , consultez Rôles utilisateur et tâches courantes de GKE.
Comprendre les erreurs d'opérations simultanées
Dans GKE, une opération de cluster est une action qui modifie l'état du plan de contrôle ou des pools de nœuds de votre cluster. Ces opérations sont gérées par GKE et peuvent être lancées par vous ou par GKE à des fins de maintenance. Voici quelques opérations courantes sur les clusters :
- Création ou suppression du cluster.
- Mise à niveau de la version du plan de contrôle du cluster.
- Créer, mettre à jour, redimensionner ou supprimer des pools de nœuds
- Modifier les paramètres au niveau du cluster, comme activer ou désactiver des fonctionnalités.
- Réparations automatiques du plan de contrôle initiées par GKE.
Lorsque vous effectuez des opérations sur vos clusters, des messages d'erreur semblables à ceux ci-dessous peuvent s'afficher :
Cluster is running incompatible operation OPERATION_NAME
Cluster is currently being created, deleted, updated or repaired and cannot be updated
Operation OPERATION_NAME is currently ACTIONING cluster CLUSTER_NAME. Please wait and try again once it is done
Ces erreurs peuvent inclure les valeurs suivantes :
OPERATION_NAME
: ID unique d'une opération déjà en cours d'exécution sur votre cluster. Utilisez ce nom pour suivre l'état de cette opération préexistante qui empêche le démarrage de votre nouvelle opération.ACTIONING
: action effectuée sur le cluster. Par exemple,Creating
ouUpdating
.CLUSTER_NAME
: nom du cluster ciblé par l'opération.
Ces erreurs se produisent, car GKE limite le nombre d'opérations pouvant être exécutées simultanément pour éviter les conflits. En règle générale, GKE n'autorise qu'une seule opération au niveau du cluster ou une seule opération par pool de nœuds à s'exécuter simultanément. GKE effectue également ses propres actions automatiques, telles que les mises à niveau du plan de contrôle, qui sont comptabilisées dans cette limite et peuvent vous empêcher temporairement de démarrer une nouvelle tâche.
Résoudre les erreurs d'opération simultanée
Si vous recevez un message d'erreur indiquant qu'une autre opération est en cours, identifiez la tâche en cours et attendez qu'elle se termine :
Si vous ne connaissez pas le nom de l'opération bloquante, listez toutes les opérations en cours et en attente pour votre cluster :
gcloud container operations list \ --location=LOCATION \ --filter '(targetLink~/clusters/CLUSTER_NAME$ OR targetLink~/clusters/CLUSTER_NAME/) AND status!=DONE' \ --format json
Remplacez les éléments suivants :
LOCATION
: région ou zone Compute Engine (par exemple,us-central1
ouus-central1-a
) du cluster, selon qu'il s'agit d'un cluster régional ou zonal.CLUSTER_NAME
: nom du cluster dont l'opération a échoué.Le résultat ressemble à ce qui suit :
{ "name": "operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff", "operationType": "UPDATE_CLUSTER", "selfLink": "https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff", "startTime": "2001-01-01T00:00:00.000000000Z", "status": "RUNNING", "targetLink": "https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME/nodePools/NODE_POOL_NAME", "zone": "LOCATION" }
Dans le résultat, examinez le champ
name
pour chaque opération. Cette valeur correspond au nom de l'opération qui empêche le démarrage de votre nouvelle opération. Vous aurez besoin de cette valeur à l'étape suivante.Pour en savoir plus sur les autres champs de la sortie, consultez la documentation de l'API pour
projects.locations.operations
.
Patientez jusqu'à la fin de l'opération :
gcloud container operations wait OPERATION_NAME \ --location=LOCATION
Remplacez
OPERATION_NAME
par le nom d'une opération de blocage provenant d'un message d'erreur ou de l'étape précédente.Cette commande surveille activement l'opération et se ferme une fois celle-ci terminée.
Une fois que l'opération de blocage a l'état
DONE
, réessayez l'opération à l'origine de l'erreur.
Étapes suivantes
Si vous ne trouvez pas de solution à votre problème dans la documentation, consultez Obtenir de l'aide pour obtenir une assistance supplémentaire, y compris des conseils sur les sujets suivants :
- Ouvrez une demande d'assistance en contactant le service client Google Cloud.
- Obtenir de l'aide de la communauté en posant des questions sur Stack Overflow et en utilisant le tag
google-kubernetes-engine
pour rechercher des problèmes similaires. Vous pouvez également rejoindre le canal Slack#kubernetes-engine
pour obtenir de l'aide auprès de la communauté. - Signaler des bugs ou demander des fonctionnalités à l'aide de l'outil public de suivi des problèmes.