Notificaciones de clústeres

En esta página se describe cómo publica Google Kubernetes Engine (GKE) las notificaciones de clúster en Cloud Logging de forma predeterminada y, opcionalmente, en Pub/Sub. Estas notificaciones contienen información sobre eventos relevantes para la configuración de tu clúster, como actualizaciones disponibles o en curso, boletines de seguridad y fechas de finalización del soporte.

Información general

Cuando se producen determinados eventos que son relevantes para tus clústeres de GKE, como actualizaciones importantes disponibles o boletines de seguridad, GKE envía estas notificaciones a Cloud Logging. Para encontrar estos registros en Cloud Logging, consulta Ver notificaciones de clúster en Cloud Logging.

GKE también publica notificaciones sobre esos eventos como mensajes en temas de Pub/Sub que configures. Puedes recibirlas en una suscripción de Pub/Sub, integrarte con servicios de terceros y filtrar los tipos de notificaciones que quieras recibir. Para obtener más información sobre cómo configurar las notificaciones de clústeres con Pub/Sub, consulta Recibir notificaciones de clústeres a través de Pub/Sub.

Ventajas

Las notificaciones de clústeres ofrecen las siguientes ventajas:

  • Recibirás una notificación cuando se publiquen boletines de seguridad específicos para tus clústeres, lo que te proporcionará información precisa sobre los riesgos y el impacto.
  • Recibirás una notificación cuando haya una nueva versión de GKE disponible para tu clúster, lo que te permitirá planificar mejor las pruebas y las cualificaciones, así como garantizar un proceso de actualización fluido y predecible. Antes, tenías que consultar las notas de la versión de GKE o la API de GKE para saber cuándo se lanzaba una nueva versión de GKE.
  • Recibirás una notificación cuando GKE o un usuario inicien actualizaciones del clúster y cuando finalice la operación de actualización, lo que te proporcionará más visibilidad de las operaciones en segundo plano de tu clúster.
  • Se te notifica cuando tu clúster ejecuta una versión secundaria de GKE que está al final del periodo de asistencia o cerca de él.
  • Puedes elegir si quieres usar Cloud Logging o Pub/Sub:

    • Las notificaciones de clústeres se envían a Cloud Logging de forma predeterminada. Puedes usar todas las funciones de Cloud Logging, como consultar y ver registros, y configurar políticas de alertas basadas en registros.
    • Pub/Sub es muy extensible, lo que te ofrece flexibilidad a la hora de procesar las notificaciones entrantes. Por ejemplo, puedes integrar Slack para reenviar notificaciones a un canal de Slack o iniciar funciones de Cloud Run para ejecutar procesos personalizados. Cuando se requieren procesos personalizados (por ejemplo, organizar un flujo de trabajo de staging a producción para probar y certificar una actualización), puede usar la notificación para activar automáticamente estos flujos de trabajo.

Tipos de notificaciones de actualización

GKE envía los siguientes tipos de notificaciones de clústeres:

Si consultas las notificaciones de clúster en Cloud Logging, puedes usar las funciones de Cloud Logging para filtrar los registros. Si usas Pub/Sub, puedes filtrar las notificaciones que recibes para que solo se te notifiquen los eventos relevantes.

SecurityBulletinEvent

Cuando GKE publica un boletín de seguridad que se corresponde directamente con la configuración o la versión de tu clúster, GKE envía una notificación SecurityBulletinEvent en la que se proporciona información sobre la vulnerabilidad, el impacto y, si procede, las medidas que puedes tomar.

UpgradeAvailableEvent

Cuando hay una nueva versión disponible en un canal de lanzamiento, GKE envía una notificación UpgradeAvailableEvent a los clústeres de ese canal para informarles de que hay una nueva versión disponible. Esta notificación se envía con una semana de antelación en el caso de las versiones de parche y con al menos entre 2 y 4 semanas en el caso de las versiones secundarias (en función del canal). Para obtener más información, consulta el artículo Qué versiones están disponibles en un canal.

En el caso de los clústeres que no estén en un canal de lanzamiento, GKE envía UpgradeAvailableEvent notificaciones de todas las versiones nuevas a las que se pueden actualizar los clústeres, incluidos los parches de la versión secundaria actual y de la siguiente.

Si usas grupos de nodos de Windows Server, la información de la versión de Windows se envía como parte de la notificación UpgradeAvailableEvent.

UpgradeEvent

Cuando tú o GKE iniciáis una actualización, GKE envía una notificación UpgradeEvent para informarte de que ha empezado una actualización. Lo ideal es que uses el tipo de notificación UpgradeAvailableEvent para estar al tanto de la próxima actualización y, de esta forma, puedas actualizar con antelación o tomar las medidas necesarias para prepararte, como configurar ventanas de mantenimiento.

La notificación UpgradeEvent se envía al inicio de la operación de actualización. El ID de la operación se envía en el mensaje.

UpgradeInfoEvent

GKE envía una notificación UpgradeInfoEvent para diferentes tipos de eventos, que se describen en las secciones siguientes.

Para obtener más información sobre cómo filtrar por un tipo específico de UpgradeInfoEvent, consulta Filtrar notificaciones de clústeres de UpgradeInfoEvent.

Se ha completado la operación de actualización

Cuando GKE termina la operación para actualizar automáticamente o manualmente el plano de control o los nodos de un clúster, envía una notificación para informarte de que la operación se ha completado. La operación se completa con uno de los siguientes estados:

  • SUCCEEDED: GKE ha actualizado correctamente el plano de control o los nodos.
  • FAILED: GKE no ha podido actualizar el plano de control o los nodos.
  • CANCELED: GKE ha cancelado la operación de actualización por motivos técnicos o empresariales, o bien has cancelado la operación de actualización.

Usa la notificación para confirmar que la operación de actualización se ha completado correctamente.

Versión secundaria cuya asistencia está finalizada o cerca de finalizar

Cuando tu clúster ejecuta una versión secundaria de GKE que está cerca del final del periodo de asistencia estándar o del final del periodo de asistencia ampliado, o bien ha alcanzado cualquiera de esos hitos, GKE envía notificaciones para que actualices el plano de control o los nodos del clúster a la siguiente versión secundaria admitida. Si usas una versión secundaria compatible, te aseguras de seguir recibiendo parches de seguridad, correcciones de errores y asistencia. GKE envía una notificación 30 días antes de que finalice el periodo de asistencia y otra cuando finaliza, si tu clúster sigue ejecutando la versión secundaria.

GKE envía notificaciones a nivel de clúster, aunque es posible que se vean afectados varios componentes del clúster y que este ejecute diferentes versiones secundarias al mismo tiempo. Si la versión secundaria está llegando al final del periodo de asistencia estándar y necesitas tiempo para prepararte para actualizar a una versión admitida, puedes cambiar al canal de lanzamiento ampliado para obtener asistencia a largo plazo. De lo contrario, GKE programa actualizaciones automáticas al final del periodo de asistencia. Estas notificaciones te ayudarán a prepararte para la aplicación de estas políticas de fin de asistencia.

Una notificación incluye los siguientes detalles:

  • El clúster afectado.
  • La versión actual que está al final del periodo de asistencia o cerca de él.
  • Fecha de finalización de la asistencia.

Para obtener más información sobre el calendario de asistencia de las versiones secundarias de GKE, consulta el ciclo de vida de las versiones secundarias de GKE.

Las nuevas versiones de parche cambian a una nueva versión de Container-Optimized OS durante el periodo de asistencia ampliado

Si tu clúster está registrado en el canal ampliado durante el periodo de asistencia ampliado y el hito del SO optimizado para contenedores que usa la versión secundaria de GKE llega al final del periodo de asistencia antes que la versión secundaria, GKE enviará una notificación del clúster. GKE envía esta notificación cuando la primera versión de parche que usa el nuevo hito está disponible en el canal Extended.

Esta notificación incluye los siguientes detalles:

  • El clúster afectado.
  • La versión del parche que usa el nuevo hito.
  • Los hitos actuales y los nuevos.
  • Cómo pausa GKE las actualizaciones automáticas de parches de los nodos.

La versión del parche que usa el nuevo hito se convierte en el destino de la actualización automática del parche del clúster y las actualizaciones automáticas de los nodos se pausan. Los administradores del clúster deben decidir cuál de los siguientes pasos quieren llevar a cabo:

  • Actualiza manualmente los nodos del clúster a la siguiente versión de parche, que usa la siguiente versión de Container-Optimized OS.
  • Actualiza manualmente el clúster a la siguiente versión secundaria.
  • No realices actualizaciones de parches hasta que GKE actualice el clúster a la siguiente versión secundaria hacia el final del periodo de asistencia ampliado.

Para obtener más información, consulta The Container-Optimized OS milestone reaches the end of support before the minor version end of extended support (El hito de Container-Optimized OS llega al final de la asistencia antes del final de la asistencia ampliada de la versión secundaria).

Ver notificaciones de clústeres en Cloud Logging

Para ver los registros de los clústeres de GKE, consulta Acceder a los registros.

Si no quieres que se almacenen estos registros, puedes configurar un filtro de exclusión.

Para ver los registros en Cloud Logging con el siguiente filtro y consultar todos los tipos de notificaciones de clústeres, haz lo siguiente:

logName=projects/PROJECT_ID/logs/container.googleapis.com%2Fnotifications

Sustituye PROJECT_ID por el ID de tu proyecto. Trusted Cloud by S3NS

Consulta los registros con el siguiente filtro para ver un tipo de notificación de clúster específico, como UpgradeEvent:

jsonPayload.@type=type.googleapis.com/google.container.v1beta1.NOTIFICATION_TYPE

Sustituye NOTIFICATION_TYPE por el tipo de notificación del clúster de los registros que quieras ver.

Filtrar notificaciones de clústeres UpgradeInfoEvent

Consulta los registros con el siguiente filtro para ver un UpgradeInfoEvent específico, como la notificación de cuando se completa una operación de actualización:

jsonPayload.@type=type.googleapis.com/google.container.v1beta1.UpgradeInfoEvent
jsonPayload.eventType=EVENT_TYPE

Sustituye EVENT_TYPE por una de las siguientes opciones:

Filtrar notificaciones a Pub/Sub

Puedes filtrar las notificaciones de clústeres para asegurarte de que solo recibes las que quieres en Pub/Sub. Puedes aplicar filtros a las notificaciones de Pub/Sub de una de las siguientes formas:

Para ver y filtrar notificaciones en Cloud Logging, consulta Ver notificaciones de clúster en Cloud Logging.

Filtrar notificaciones a Pub/Sub en GKE

Puede configurar el filtrado en Pub/Sub para uno o varios tipos de notificaciones disponibles al habilitar las notificaciones de clúster especificando valores para filter en la marca --notification-config. filter toma una lista delimitada por barras verticales ( | ) de los tipos de notificaciones que quieres recibir.

Por ejemplo, si especifica filter="UpgradeEvent|SecurityBulletinEvent", GKE solo enviará notificaciones de los tipos UpgradeEvent y SecurityBulletinEvent.

Filtrar las notificaciones mediante filter ofrece ventajas como las siguientes:

  • Es más fácil de usar, ya que puedes filtrar por el tipo de notificación sin usar una sintaxis específica.
  • Las notificaciones que filtras nunca se envían a Pub/Sub, por lo que no se te cobran tarifas por los mensajes no entregados.
  • Puedes editar la configuración del filtro en cualquier momento.

Para obtener instrucciones sobre cómo filtrar notificaciones en GKE, consulta Recibir notificaciones de clústeres a través de Pub/Sub.

Filtrar notificaciones en GKE no afecta a los registros que aparecen en Cloud Logging.

Filtrar notificaciones en Pub/Sub

Pub/Sub admite el filtrado de mensajes en tu suscripción mediante una sintaxis de filtrado. Cuando usas este método, GKE envía todos los tipos de notificaciones a tu tema de Pub/Sub. Pub/Sub filtra los mensajes en función de la configuración de tu suscripción y te envía los mensajes que quieres recibir.

Por ejemplo, puedes filtrar las notificaciones de UpgradeEvent y UpgradeAvailableEvent con la siguiente sintaxis en tu suscripción:

attributes.type_url = "type.googleapis.com/google.container.v1beta1.UpgradeEvent" OR "type.googleapis.com/google.container.v1beta1.UpgradeAvailableEvent"

Se te seguirán cobrando los mensajes no entregados filtrados por tu suscripción. Tampoco puedes modificar los filtros después de configurar la suscripción. Sin embargo, la sintaxis de filtrado es más extensible que la de GKE.

Para obtener más información sobre cómo filtrar tu suscripción a Pub/Sub, consulta Filtrar mensajes.

Consumir mensajes de Pub/Sub

Los mensajes de Pub/Sub contienen dos campos: data (cadena) y attributes (mapa de cadena a cadena).

En el caso de las notificaciones de GKE, el campo data contiene información que pueden leer los usuarios. El campo attributes contiene información genérica sobre la notificación, como el tipo de notificación, el ID del proyecto, el nombre del clúster y la ubicación del clúster. El campo attributes.payload es una cadena analizable con JSON que contiene información específica de la notificación, como los detalles de un boletín de seguridad.

Las notificaciones siempre contienen los siguientes atributos:

Atributo Descripción Ejemplo
project_id El número de proyecto propietario del clúster. 123456789
cluster_location Ubicación del clúster. us-central1-c
cluster_name Nombre del clúster. example-cluster
type_url El tipo de notificación. type.googleapis.com/google.container.v1beta1.UpgradeEvent
payload Cadena analizable en formato JSON que contiene información específica de la notificación.
{ "resourceType":"MASTER",
  "operation":"operation-1595889094437-87b7254a",
  "operationStartTime":"2020-07-27T22:31:34.437652293Z",
  "currentVersion":"1.15.12-gke.2",
  "targetVersion":"1.15.12-gke.9"}

GKE siempre enviará notificaciones de tipo beta. Sin embargo, puedes analizar la carga útil para mostrar el tipo de notificación de GA correspondiente si está disponible.

Mensajes de notificación de clúster de ejemplo

Además del texto del campo data, cada mensaje que GKE envía a Cloud Logging o Pub/Sub tiene valores específicos en los campos attributes.type_url y attributes.payload. En las siguientes tablas se muestran ejemplos de la información que puedes recibir para cada tipo de notificación:

SecurityBulletinEvent

La salida es similar a la siguiente para un mensaje SecurityBulletinEvent:

Atributos
type_url type.googleapis.com/google.container.v1beta1.SecurityBulletinEvent
payload
{    "resourceTypeAffected":"RESOURCE_TYPE_CONTROLPLANE",
         "bulletinId":"GCP-2021-001",
         "cveIds":[
            "CVE-2021-3156"
         ],
         "severity":"Medium",
         "briefDescription":"A vulnerability was recently discovered in the Linux utility sudo, described in CVE-2021-3156, that may allow an attacker with unprivileged local shell access on a system with sudo installed to escalate their privileges to root on the system.",
         "affectedSupportedMinors":["1.18", "1.19"],
         "patchedVersions":["1.18.9-gke.1900", "1.19.9-gke.1900"],
         "suggestedUpgradeTarget":"1.19.9-gke.1900",
         "bulletinUri":"https://cloud.google.com/anthos/clusters/docs/security-bulletins#gcp-2021-001"
      }
      

UpgradeAvailableEvent

La salida es similar a la siguiente para un mensaje UpgradeAvailableEvent:

Atributos
type_url type.googleapis.com/google.container.v1beta1.UpgradeAvailableEvent
payload
{ "version":"1.17.15-gke.800",
  "resourceType":"MASTER",
  "releaseChannel":{"channel":"RAPID"},
  "windowsVersions": [
    {
      "imageType": "WINDOWS_SAC",
      "osVersion": "10.0.18363.1198",
      "supportEndDate": {
        "day": 10,
        "month": 5,
        "year": 2022
      }
    },
    {
      "imageType": "WINDOWS_LTSC",
      "osVersion": "10.0.17763.1577",
      "supportEndDate": {
        "day": 9,
        "month": 1,
        "year": 2024
      }
    }
  ]
}

      

UpgradeEvent

La salida es similar a la siguiente para un mensaje UpgradeEvent:

Atributos
type_url type.googleapis.com/google.container.v1beta1.UpgradeEvent
payload
{ "resourceType":"MASTER",
  "operation":"operation-1595889094437-87b7254a",
  "operationStartTime":"2020-07-27T22:31:34.437652293Z",
  "currentVersion":"1.15.12-gke.2",
  "targetVersion":"1.15.12-gke.9"}
      

UpgradeInfoEvent

El resultado es similar al siguiente en un mensaje de UpgradeInfoEvent cuando se completa una operación de actualización, como en este ejemplo de actualización de un grupo de nodos:

Atributos
type_url type.googleapis.com/google.container.v1beta1.UpgradeInfoEvent
payload
{ "currentVersion":"1.31.1-gke.1846000",
  "endTime":"2024-11-06T17:12:54.111640650Z",
  "operation":"operation-1730912205658-de2f88a8-6290-4718-b2c1-fb19611060b8",
  "resource":"projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME/nodePools/NODE_POOL_NAME",
  "resourceType":"NODE_POOL"
  "startTime":"2024-11-06T16:56:45.658321844Z",
  "state":"SUCCEEDED",
  "targetVersion":"1.31.1-gke.2105000"}
      

Este resultado es distinto de cuando los mensajes corresponden a una versión secundaria que está cerca o al final del periodo de asistencia, o cuando nuevas versiones de parche cambian a una nueva versión de Container-Optimized OS durante el periodo de asistencia ampliado.

Siguientes pasos