Configura exclusiones y períodos de mantenimiento

En esta página, se muestra cómo usar las Exclusiones y períodos de mantenimiento para controlar cuándo puede realizarse o no el mantenimiento automático del clúster, como las actualizaciones automáticas, en tus clústeres de Google Kubernetes Engine (GKE).

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

Establece la configuración de gcloud predeterminada mediante uno de los siguientes métodos:

  • Usa gcloud init si deseas ver una explicación sobre cómo configurar parámetros predeterminados.
  • Usa gcloud config para establecer el ID, la zona y la región del proyecto de manera individual.

Usa gcloud init

  1. Ejecuta gcloud init y sigue las instrucciones:

    gcloud init

    Si usas SSH en un servidor remoto, usa la marca --console-only para evitar que el comando abra un navegador:

    gcloud init --console-only
  2. Sigue las instrucciones a fin de autorizar a gcloud para que use tu cuenta de Google Cloud.
  3. Crea una configuración nueva o selecciona una existente.
  4. Elige un proyecto de Google Cloud.
  5. Elige una zona predeterminada de Compute Engine.

Usa gcloud config

  • Establece tu ID del proyecto predeterminado:
    gcloud config set project project-id
  • Si trabajas con clústeres zonales, establece tu zona de procesamiento predeterminada:
    gcloud config set compute/zone compute-zone
  • Si trabajas con clústeres regionales, establece tu región de procesamiento predeterminada:
    gcloud config set compute/region compute-region
  • Actualiza gcloud a la versión más reciente:
    gcloud components update

Configura un período de mantenimiento

Para configurar un período de mantenimiento, debes establecer cuándo se inicia, cuánto dura y con qué frecuencia se repite. Por ejemplo, puedes configurar un período de mantenimiento que se repita cada semana de lunes a viernes.

Puedes configurar un período de mantenimiento con Google Cloud Console o el comando de gcloud.

Crea un clúster con un período de mantenimiento simple

Puedes crear un período de mantenimiento simple en gcloud si especificas la marca --maintenance-window. Esta marca te permite especificar un período de mantenimiento diario de 4 horas con un formato simplificado.

Para crear un clúster nuevo con un período de mantenimiento simple, ejecuta el siguiente comando:

gcloud container clusters create cluster-name \
  --maintenance-window start-time

donde:

  • cluster-name es el nombre del clúster nuevo.
  • start-time se establece en una marca de tiempo de 24 horas en UTC, como 16:00.

El período de mantenimiento se ejecuta todos los días a la start-time especificada y se ejecuta durante cuatro horas.

Crea un clúster con un período de mantenimiento

Puedes crear un clúster nuevo con un período de mantenimiento usando la herramienta de gcloud o Google Cloud Console.

gcloud

Para crear un clúster nuevo con un período de mantenimiento, ejecuta el siguiente comando:

gcloud container clusters create cluster-name \
  --maintenance-window-start start-time \
  --maintenance-window-end end-time \
  --maintenance-window-recurrence rrule

donde:

  • cluster-name es el nombre del clúster nuevo.
  • start-time es un DTSTART RFC-5545.
  • end-time se especifica en el mismo formato que start-time, pero solo se usa para calcular la duración del período de mantenimiento. El valor de end-time debe ser futuro en relación con start-time.
  • rrule es un RRULE RFC-5545. Este es un formato muy flexible y cuenta con varias formas de especificar reglas de recurrencia.

Por ejemplo, con el siguiente comando, se crea un clúster llamado my-cluster con un período de mantenimiento que comienza a las 2:00 a.m. UTC del 1 de agosto de 2019, finaliza cuatro horas después y se ejecuta todos los días. Puedes obtener más información sobre el formato de fechas y horas.

gcloud container clusters create my-cluster \
  --maintenance-window-start 2019-08-01T02:00:00Z \
  --maintenance-window-end 2019-08-01T06:00:00Z \
  --maintenance-window-recurrence FREQ=DAILY

Console

  1. Visita el menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú de Google Kubernetes Engine

  2. Haz clic en el botón Crear clúster.

  3. Configura tu clúster como desees.

  4. En el panel de navegación, en Clústeres, haz clic en Automatización.

  5. Selecciona la casilla de verificación Habilitar período de mantenimiento.

  6. Selecciona la hora de inicio y la duración y, luego, los días de la semana en que tendrá lugar el período de mantenimiento. Para editar RRULE directamente, cambia al editor personalizado.

  7. Haz clic en Crear.

Cómo configurar un período de mantenimiento para un clúster existente

gcloud

Para crear o actualizar un período de mantenimiento de un clúster existente, ejecuta el siguiente comando:

gcloud container clusters update cluster-name \
  --maintenance-window-start start-time \
  --maintenance-window-end end-time \
  --maintenance-window-recurrence rrule

donde:

  • cluster-name es el nombre del clúster existente.
  • start-time es un DTSTART RFC-5545.
  • end-time se especifica en el mismo formato que start-time, pero solo se usa para calcular la duración del período de mantenimiento. El valor de end-time debe ser futuro en relación con start-time.
  • rrule es un RRULE RFC-5545. Este es un formato muy flexible y cuenta con varias formas de especificar reglas de recurrencia.

Console

Para crear o modificar un período de mantenimiento de un clúster existente, sigue estos pasos:

  1. Visita el menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en el botón Editar del clúster, que tiene forma de lápiz.

  3. En la sección Período de mantenimiento, selecciona la hora de inicio y la duración y, luego, los días de la semana en que se activa el período de mantenimiento. Para editar RRULE directamente, cambia al editor personalizado.

  4. Haz clic en Guardar.

Finaliza de forma manual el mantenimiento incompleto

Si una actualización o algún otro mantenimiento automático demoran más en completar el período de mantenimiento, GKE intenta detener las tareas de mantenimiento en curso y las reanuda cuando se vuelva a realizar el período de mantenimiento. Si se cancela una actualización automática, y tienes habilitadas las actualizaciones automáticas de nodos, es posible que tus nodos presenten un estado de versión mixta, pero tu clúster debería funcionar con normalidad.

Para actualizar tu clúster de forma manual, o cancelar o revertir una actualización parcial, visita Actualiza un clúster.

Quita un período de mantenimiento

gcloud

Para quitar un período de mantenimiento de un clúster, ejecuta el siguiente comando:

gcloud container clusters update cluster-name --clear-maintenance-window

donde cluster-name es el nombre del clúster existente.

Console

Para quitar un período de mantenimiento, sigue estos pasos:

  1. Visita el menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en el botón Editar del clúster, que se asemeja a un lápiz.

  3. En la lista desplegable Período de mantenimiento, selecciona Inhabilitado.

  4. Haz clic en Guardar.

Ejemplos de períodos de mantenimiento

En los siguientes ejemplos, se ilustran algunas de las diferentes maneras en que puedes configurar un período de mantenimiento. Solo se muestran las marcas relevantes, porque las marcas usan la misma sintaxis para crear un clúster nuevo o actualizar uno existente.

Cada semana, los martes y miércoles, a partir del 27 de agosto de 2019, durante todo el día.

En este ejemplo, la diferencia entre las marcas de tiempo de inicio y de finalización es un día completo, por lo que el período de mantenimiento se ejecuta durante 24 horas los martes y miércoles.

--maintenance-window-start 2019-08-27T00:00:00Z \
--maintenance-window-end 2019-08-28T00:00:00Z \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=TU,WE'
Todos los días de lunes a viernes desde las 9:00 hasta las 17:00 UTC-4

En este ejemplo, se muestra cómo llevar a cabo un período de mantenimiento diario, pero se omiten los fines de semana. En este ejemplo, se especifica una zona horaria distinta a UTC.

--maintenance-window-start 2019-09-02T09:00:00-04:00 \
--maintenance-window-end 2019-09-02T17:00:00-04:00 \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR'
Cada semana a las 4:00 p.m. durante 8 horas, UTC-7

Si no especificas una zona horaria para --maintenance-window-start, se usa la hora local, como se configuró en tu cuenta de Google Cloud. Google Cloud Console siempre usa la hora local.

--maintenance-window-start 2019-08-13T16:00:00-7:00 \
--maintenance-window-end 2019-08-14T00:00:00-7:00 \
--maintenance-window-recurrence FREQ=WEEKLY

Configura una exclusión de mantenimiento

Para configurar una exclusión de mantenimiento, establece el nombre (opcional), la hora de inicio y la hora de finalización. La exclusión de mantenimiento puede durar varios días.

Puedes configurar un máximo de tres exclusiones de mantenimiento en un clúster en un momento determinado. Puedes quitar de forma manual las exclusiones de mantenimiento, ya sea que se hayan producido o no.

Puedes configurar una exclusión de mantenimiento con Google Cloud Console o el comando de gcloud.

Crea un clúster con una exclusión de mantenimiento

Si deseas crear o modificar una exclusión de mantenimiento para un clúster existente, haz lo siguiente:

  1. Visita el menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en el botón Editar del clúster, que tiene forma de lápiz.

  3. En la sección Exclusión de mantenimiento, selecciona Agregar exclusión de mantenimiento. Selecciona la hora de inicio y de finalización.

  4. Haz clic en Guardar.

Puedes ver un ejemplo de la exclusión de mantenimiento para el Black Friday.

Quita una exclusión de mantenimiento

Un clúster puede tener un máximo de tres exclusiones de mantenimiento activas y no transcurridas en cualquier momento.

gcloud

Para quitar una exclusión de mantenimiento existente, ejecuta el siguiente comando:

gcloud container clusters update cluster-name \
  --remove-maintenance-exclusion exclusion-name

donde:

  • cluster-name es el nombre del clúster existente.
  • exclusion-name es el nombre de la exclusión de mantenimiento que se quitará.

Console

Para quitar una exclusión de mantenimiento de un clúster existente, haz lo siguiente:

  1. Visita el menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en el botón Editar del clúster, que tiene forma de lápiz.

  3. En la sección Exclusión de mantenimiento, haz clic en X junto a la exclusión que se quitará.

  4. Haz clic en Guardar.

Para ver todas las exclusiones de mantenimiento en un clúster, puedes ver la política de mantenimiento del clúster.

Ejemplo de exclusión de mantenimiento

En el siguiente ejemplo, se evita el mantenimiento durante los cuatro días que abarcan desde el Black Friday hasta el Cyber Monday, el período de ventas de mayor volumen del año para muchas empresas minoristas. En este ejemplo, se muestra cómo evitar que tenga lugar un período de mantenimiento a partir del Black Friday de 2019 (29 de noviembre de 2019) hasta el Cyber Monday de 2019 (2 de diciembre de 2019), desde la medianoche en la costa este (UTC-5) hasta las 23:59:59 en la costa oeste (UTC-7).

gcloud container clusters update sample-cluster \
 --add-maintenance-exclusion-name black-friday \
 --add-maintenance-exclusion-start 2019-11-29T00:00:00-05:00 \
 --add-maintenance-exclusion-end 2019-12-02T23:59:59-07:00

Visualiza la política de mantenimiento de un clúster

Para ver la política de mantenimiento de un clúster, que incluye ver si tiene si tiene un período de mantenimiento y todas sus exclusiones de mantenimiento, usa el siguiente comando:

gcloud container clusters describe cluster-name

Próximos pasos