Cuando intentas modificar tu clúster de Google Kubernetes Engine (GKE) o sus grupos de nodos, es posible que tu acción se bloquee temporalmente porque se está ejecutando otra operación. Este problema puede retrasar las actualizaciones críticas, la administración del clúster y las implementaciones de aplicaciones.
En esta página se explica cómo identificar la operación que se está ejecutando. Conocer la operación activa te ayuda a estimar el retraso y a determinar cuándo volver a intentar la acción.
Esta información es importante tanto para los desarrolladores de aplicaciones, que pueden encontrarse con estos límites al implementar o modificar aplicaciones, como para los administradores y operadores de la plataforma, que gestionan el ciclo de vida general del clúster y las actualizaciones, y que necesitan solucionar problemas con tareas administrativas bloqueadas. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido deGoogle Cloud , consulta Roles y tareas de usuario habituales de GKE.
Información sobre los errores de operaciones simultáneas
En GKE, una operación de clúster es una acción que modifica el estado del plano de control de tu clúster o de sus grupos de nodos. GKE gestiona estas operaciones, que puedes iniciar tú o GKE con fines de mantenimiento. Entre las operaciones de clúster habituales se incluyen las siguientes:
- Crear o eliminar el clúster.
- Actualizando la versión del plano de control del clúster.
- Crear, actualizar, cambiar el tamaño o eliminar grupos de nodos.
- Modificar los ajustes a nivel de clúster, como habilitar o inhabilitar funciones.
- Reparaciones automáticas del plano de control iniciadas por GKE.
Cuando realices operaciones en tus clústeres, es posible que veas mensajes de error similares a los siguientes:
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
Estos errores pueden incluir los siguientes valores:
OPERATION_NAME
: el ID único de una operación que ya se está ejecutando en tu clúster. Usa este nombre para monitorizar el estado de esta operación preexistente que impide que se inicie la nueva operación.ACTIONING
: la acción que se está realizando en el clúster. Por ejemplo,Creating
oUpdating
.CLUSTER_NAME
: el nombre del clúster al que se dirige la operación.
Estos errores se producen porque GKE limita el número de operaciones que se pueden ejecutar al mismo tiempo para evitar conflictos. Por lo general, GKE solo permite que se ejecute una operación a nivel del clúster o una operación por grupo de nodos simultáneamente. GKE también realiza sus propias acciones automáticas, como las actualizaciones del plano de control, que se tienen en cuenta para este límite y pueden impedir temporalmente que inicies una tarea nueva.
Resolver errores de operaciones simultáneas
Si recibes un error que indica que hay otra operación en curso, identifica la tarea en cuestión y espera a que finalice:
Si no sabes el nombre de la operación de bloqueo, puedes consultar todas las operaciones en curso y pendientes de tu clúster:
gcloud container operations list \ --location=LOCATION \ --filter '(targetLink~/clusters/CLUSTER_NAME$ OR targetLink~/clusters/CLUSTER_NAME/) AND status!=DONE' \ --format json
Haz los cambios siguientes:
LOCATION
: la región o la zona de Compute Engine (por ejemplo,us-central1
ous-central1-a
) del clúster, en función de si el clúster es regional o zonal.CLUSTER_NAME
: el nombre del clúster con la operación fallida.El resultado debería ser similar al siguiente:
{ "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" }
En el resultado, consulta el campo
name
de cada operación. Este valor es el nombre de la operación que impide que se inicie la nueva operación. Necesitarás este valor para el siguiente paso.Para obtener más información sobre los demás campos de la salida, consulta la documentación de la API de
projects.locations.operations
.
Espera a que se complete la operación:
gcloud container operations wait OPERATION_NAME \ --location=LOCATION
Sustituye
OPERATION_NAME
por el nombre de una operación de bloqueo de un mensaje de error o del paso anterior.Este comando monitoriza activamente la operación y se cierra cuando se completa.
Cuando la operación de bloqueo tenga el estado
DONE
, vuelve a intentar la operación que ha provocado el error.
Siguientes pasos
Si no encuentras una solución a tu problema en la documentación, consulta la sección Obtener asistencia para obtener más ayuda, incluidos consejos sobre los siguientes temas:
- Abrir un caso de asistencia poniéndose en contacto con el equipo de Atención al Cliente de Cloud.
- Obtener asistencia de la comunidad haciendo preguntas en Stack Overflow
y usando la etiqueta
google-kubernetes-engine
para buscar problemas similares. También puedes unirte al#kubernetes-engine
canal de Slack para obtener más ayuda de la comunidad. - Abrir errores o solicitudes de funciones mediante el seguimiento de problemas público.