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

Si recibes el error One of [--zone, --region] must be supplied: Please specify location, completa esta sección.

  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 para clústeres zonales o una región para clústeres regionales o de Autopilot.

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 de Autopilot o regionales, configura 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

En el ejemplo anterior, se ilustra lo siguiente:

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

El período de mantenimiento se ejecuta todos los días en el start-time especificado y 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

En el ejemplo anterior, se ilustra lo siguiente:

  • cluster-name es el nombre del clúster nuevo.
  • start-time es una 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 posterior en relación con start-time.
  • rrule es una 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. Ve al menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en Crear.

  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, a continuación, selecciona los días de la semana en los que se activa el período de mantenimiento. Para editar directamente la especificación de la regla de recurrencia (RRule), selecciona Editor personalizado.

  7. Haga 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

En el ejemplo anterior, se ilustra lo siguiente:

  • cluster-name es el nombre del clúster existente.
  • start-time es una 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 posterior en relación con start-time.
  • rrule es una 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. Ve al menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. En Automatización, haz clic en Editar política de mantenimiento junto al campo Período de mantenimiento.

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

  5. Selecciona la hora de inicio y la duración y, a continuación, selecciona los días de la semana en los que se activa el período de mantenimiento. Para editar directamente la RRule, selecciona Editor personalizado.

  6. Haz clic en Guardar cambios.

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

En el ejemplo anterior, cluster-name es el nombre del clúster existente.

Console

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

  1. Ve al menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. En Automatización, haz clic en Editar política de mantenimiento junto al campo Período de mantenimiento.

  4. Desmarca la casilla de verificación Habilitar período de mantenimiento.

  5. Haz clic en Guardar cambios.

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.

La exclusión de mantenimiento debe permitir 48 horas de disponibilidad de mantenimiento en un período de 32 días. La duración de los períodos de mantenimiento afecta directamente a la exclusión máxima de mantenimiento y se puede calcular con la siguiente fórmula:

maximum maintenance exclusion (days) = 32-day rolling window - 48 hours maintenance availability / maintenance window hours per day

Por ejemplo, si tu período de mantenimiento normal dura 4 horas, la exclusión de mantenimiento máxima es de 20 días: (32 - 48/4 = 20).

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

Para crear un clúster con una exclusión de mantenimiento, sigue estos pasos:

  1. Ve al menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en Crear.

  3. Configura tu clúster como desees.

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

  5. En Exclusiones de mantenimiento, haz clic en Agregar exclusión de mantenimiento.

  6. Selecciona una Hora de inicio y una Hora de finalización.

  7. Haga clic en Crear.

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

Configura una exclusión de mantenimiento para un clúster existente

gcloud

A fin de configurar una exclusión de mantenimiento para un clúster existente, ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
  --add-maintenance-exclusion-name EXCLUSION_NAME
  --add-maintenance-exclusion-start START_DATE_TIME \
  --add-maintenance-exclusion-end END_DATE_TIME

Reemplaza lo siguiente:

  • CLUSTER_NAME: El nombre de tu clúster.
  • EXCLUSION_NAME: Es el nombre de la exclusión de mantenimiento.
  • START_DATE_TIME: Es la fecha y la hora de inicio de la exclusión.
  • END_DATE_TIME: Es la fecha y hora de finalización de la exclusión.

Para ver los formatos de fecha y hora compatibles, ejecuta gcloud topic datetimes.

Console

A fin de configurar una exclusión de mantenimiento para un clúster existente, haz lo siguiente:

  1. Ve al menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. En Automatización, junto al campo Exclusiones de mantenimiento, haz clic en Editar exclusiones de mantenimiento.

  4. En Exclusiones de mantenimiento, haz clic en Agregar exclusión de mantenimiento.

  5. Selecciona una Hora de inicio y una Hora de finalización.

  6. Haz clic en Guardar cambios.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • 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. Ve al menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. En Automatización, junto al campo Exclusiones de mantenimiento, haz clic en Editar exclusiones de mantenimiento.

  4. En Exclusiones de mantenimiento, haz clic en Borrar elemento junto al campo Hora de finalización de la exclusión que quieres quitar.

  5. Haz clic en Guardar cambios.

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

¿Qué sigue?