En esta página, se describe cómo Google Kubernetes Engine (GKE) publica notificaciones de clúster en Pub/Sub con información sobre los eventos relevantes para la configuración del clúster, como las actualizaciones disponibles y los boletines de seguridad.
Para obtener información sobre cómo configurar las notificaciones de clúster, consulta Recibe notificaciones de clúster.
Descripción general
Cuando ocurren ciertos eventos relevantes para los clústeres de GKE, como actualizaciones programadas importantes o boletines de seguridad disponibles, GKE publica notificaciones sobre esos eventos como mensajes en temas de Pub/Sub que configuras. Puedes recibir estas notificaciones en una suscripción de Pub/Sub, integrarlas a servicios de terceros,y filtrar por los tipos de notificaciones que deseas recibir.
Ventajas
El uso de Pub/Sub para recibir notificaciones de clúster proporciona los siguientes beneficios:
- Recibes información proactiva sobre las actualizaciones programadas para tu clúster, lo que te permite planificar mejor las pruebas y calificaciones, y ayudar a garantizar un proceso de actualización predecible y sencillo.
- Se te notifica cuando se emiten boletines de seguridad específicos de tus clústeres, lo que te proporciona información precisa sobre los riesgos y el impacto.
- Te notificaremos cuando haya una versión nueva de GKE nueva a la que puedas actualizar. Antes, tenías que verificar las notas de la versión de GKE o la API de GKE para descubrir cuándo se lanzaba una versión nueva de GKE.
- Se te notificará cuando GKE o un usuario inicien actualizaciones del clúster, lo que te proporciona más visibilidad de las operaciones en segundo plano del clúster.
- Pub/Sub es altamente extensible, lo que te brinda flexibilidad para procesar las notificaciones entrantes. Por ejemplo, podrías integrarlo en Slack para reenviar notificaciones a un canal de Slack o iniciar funciones de Cloud Run a fin de ejecutar procesos personalizados.
- Cuando se requieren procesos personalizados (por ejemplo, organizar una etapa de pruebas en el flujo de trabajo de producción para probar y certificar una actualización), puedes usar la notificación para activar de forma automática estos flujos de trabajo.
Tipos de notificaciones de actualización
GKE envía los siguientes tipos de notificaciones de clúster:
Puedes filtrar las notificaciones que recibes a fin de que solo se te notifique sobre los eventos relevantes. Puedes filtrar las notificaciones de clúster si especificas un valor parafilter
en la marca --notification-config
cuando habilites las notificaciones de clúster o si configuras tu suscripción a Pub/Sub.
SecurityBulletinEvent
Cuando GKE emite un boletín de seguridad que se correlaciona directamente con tu configuración o versión de clúster, GKE envía una notificación de SecurityBulletinEvent
, que te proporciona información sobre la vulnerabilidad, el impacto y, si corresponde, las medidas que puedes tomar.
UpgradeAvailableEvent
Cuando hay una versión nueva disponible en un canal de versiones, GKE envía una notificación de UpgradeAvailableEvent
a los clústeres de ese canal para informar a los clústeres que hay una nueva versión disponible. Esta notificación proporciona una notificación de una semana de anticipación para las versiones de parche y, al menos, entre 2 y 4 semanas para versiones secundarias (según el canal). Para obtener más información, consulta Qué versiones están disponibles en un canal.
UpgradeEvent
Cuando tú o GKE inicien una actualización, GKE enviará una notificación de UpgradeEvent
, que te informará que comenzó una actualización. Lo ideal sería usar el tipo de notificación UpgradeAvailableEvent
para estar al tanto de la próxima actualización, de modo que puedas actualizar con anticipación o tomar las medidas necesarias para prepararte, como configurar períodos de mantenimiento.
La notificación de UpgradeEvent
se enviará al comienzo de la operación de actualización.
El ID de operación se pasa en el mensaje.
Filtra notificaciones
Puedes filtrar las notificaciones de clúster para asegurarte de solo recibir las notificaciones que deseas. Puedes aplicar el filtrado de una de las siguientes maneras:
Filtrado de notificaciones en GKE
Puedes configurar el filtrado de uno o más tipos de notificaciones disponibles cuando habilites las notificaciones de clúster especificando valores para filter
en la marca --notification-config
. filter
toma una lista delimitada por canalizaciones ( | ) de los tipos de notificaciones que deseas recibir.
Por ejemplo, si especificas filter="UpgradeEvent|SecurityBulletinEvent"
, se le indica a GKE que solo envíe notificaciones para los tipos de notificación UpgradeEvent
y SecurityBulletinEvent
.
Filtrar notificaciones mediante filter
tiene los siguientes beneficios:
- Es más fácil de usar, ya que filtras 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 cobrarán tarifas por mensajes no entregados.
- Puedes editar la configuración del filtro en cualquier momento.
Para obtener instrucciones sobre cómo filtrar las notificaciones en GKE, consulta Recibe notificaciones de clúster.
Filtrado de 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 entrega todos los tipos de notificaciones a tu tema de Pub/Sub. Pub/Sub filtra los mensajes según tu configuración de suscripción y entrega los mensajes que deseas 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"
De todos modos se te cobrará por los mensajes no entregados filtrados por tu suscripción. Además, no puedes modificar los filtros después de configurar la suscripción. Sin embargo, la sintaxis de filtrado es más extensible que el filtrado en GKE.
Para obtener más información sobre cómo filtrar tu suscripción a Pub/Sub, consulta Filtra mensajes.
Consumo de mensajes de Pub/Sub
Los mensajes de Pub/Sub contienen dos campos: data
(string) y attributes
(mapa de string a string).
Para las notificaciones de GKE, el campo data
contiene información legible. El campo attributes
tiene 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 string JSON analizable que contiene información de notificación específica, como los detalles de un boletín de seguridad.
Las notificaciones siempre contienen los siguientes atributos:
Atributo | Descripción | Ejemplo |
---|---|---|
project_id |
Es el número del proyecto al que pertenece el clúster. | 123456789 |
cluster_location |
Es la ubicación del clúster. | example-location |
cluster_name |
Es el nombre del clúster. | example-cluster |
type_url |
Es el tipo de notificación. | type.googleapis.com/google.container.v1beta1.UpgradeEvent
|
payload |
Es una string JSON analizable 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á tipos de notificaciones beta
. Sin embargo, puedes analizar la carga útil para que se muestre el tipo de notificación de DG correspondiente, si está disponible.
Mensajes de notificación de clúster de muestra
Además del texto en el campo data
, cada mensaje que GKE envía a 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
Este es un resultado de muestra de un mensaje de 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
Este es un resultado de muestra de un mensaje de 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
Este es un resultado de muestra de un mensaje de 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"} |
¿Qué sigue?
- Aprende a recibir notificaciones de clúster.
- Obtén más información sobre cómo configurar las notificaciones de clúster para servicios de terceros.