En esta página, se describe cómo Google Kubernetes Engine (GKE) publica notificaciones de clúster en Cloud Logging de forma predeterminada y, de manera opcional, 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 fin de soporte.
Descripción general
Cuando ocurren ciertos eventos relevantes para los 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 Cómo ver las notificaciones del clúster en Cloud Logging.
GKE también publica notificaciones sobre esos eventos como mensajes en los 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. Para obtener más información sobre cómo configurar notificaciones de clústeres con Pub/Sub, consulta Cómo recibir notificaciones de clústeres a través de Pub/Sub.
Beneficios
Las notificaciones de clúster proporcionan los siguientes beneficios:
- 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.
- 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 calificaciones, y ayudar a garantizar un proceso de actualización predecible y sencillo. 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 y cuando finalice la operación de actualización, lo que te proporcionará más visibilidad de las operaciones en segundo plano del clúster.
- Recibirás una notificación cuando tu clúster ejecute una versión secundaria de GKE que esté cerca de la fecha de finalización de la asistencia o que ya haya llegado a ella.
Puedes elegir si deseas usar Cloud Logging o Pub/Sub:
- Las notificaciones del clúster se envían a Cloud Logging de forma predeterminada. Puedes usar todas las capacidades de Cloud Logging, incluidas las consultas y la visualización de registros, y configurar políticas de alertas basadas en registros.
- 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 para 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:
SecurityBulletinEvent
UpgradeAvailableEvent
UpgradeEvent
UpgradeInfoEvent
, que incluye los siguientes tipos de eventos:
Si ves las notificaciones del clúster en Cloud Logging, puedes usar las capacidades de Cloud Logging para filtrar los registros. Si usas Pub/Sub, puedes filtrar las notificaciones que recibes para que solo se te notifique sobre los eventos relevantes.
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.
Para los clústeres que no están en un canal de versiones, GKE envía notificaciones de UpgradeAvailableEvent
de todas las versiones nuevas a las que se pueden actualizar los clústeres, incluidos los parches en la versión secundaria actual y la siguiente versión secundaria.
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 de UpgradeAvailableEvent
.
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.
UpgradeInfoEvent
GKE envía una notificación de UpgradeInfoEvent
para diferentes tipos de eventos, que se describen en las siguientes secciones.
Para obtener más información sobre cómo filtrar un tipo específico de UpgradeInfoEvent
, consulta Cómo filtrar las notificaciones de clústeres de UpgradeInfoEvent
.
Se completó la operación de actualización
Cuando GKE finaliza la operación para actualizar de forma automática o manual el plano de control o los nodos de un clúster, GKE envía una notificación para informarte que la operación se completó. La operación se completa con uno de los siguientes estados:
SUCCEEDED
: GKE actualizó correctamente el plano de control o los nodos.FAILED
: GKE no pudo actualizar el plano de control o los nodos.CANCELED
: GKE canceló la operación de actualización por motivos técnicos o comerciales, o bien cancelaste la operación de actualización.
Usa la notificación para confirmar el éxito de una operación de actualización.
La versión secundaria está cerca de finalizar su período de asistencia o ya lo hizo
Cuando tu clúster ejecuta una versión secundaria de GKE que está cerca del final del período de asistencia estándar o del final del período de asistencia extendida, o bien alcanzó 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 compatible. Ejecutar una versión secundaria compatible garantiza que sigas recibiendo parches de seguridad, correcciones de errores y asistencia. GKE envía una notificación 30 días antes del final de la asistencia y otra al final de la asistencia si el clúster aún ejecuta la versión secundaria.
GKE envía notificaciones a nivel del 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 de la asistencia estándar y necesitas tiempo para prepararte para una actualización a una versión compatible, puedes cambiar al canal de versiones extendido para obtener asistencia a largo plazo. De lo contrario, GKE programa actualizaciones automáticas al final del período de asistencia. Estas notificaciones te ayudan a asegurarte de que estés preparado para la aplicación de estas políticas de fin de asistencia.
Una notificación incluye los siguientes detalles:
- Es el clúster afectado.
- Es la versión actual que está cerca del final de la asistencia o ya finalizó.
- Fecha de finalización de la asistencia.
Para obtener más detalles sobre el cronograma de asistencia para las versiones secundarias de GKE, consulta el ciclo de vida de la versión secundaria de GKE.
Las versiones de parche nuevas cambian a un nuevo hito de Container-Optimized OS durante la asistencia extendida
Cuando tu clúster está inscrito en el canal extendido durante el período de asistencia extendida y el hito de Container-Optimized OS que usa la versión secundaria de GKE alcanza el final de la asistencia antes que la versión secundaria, GKE envía 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 extendido.
Esta notificación incluye los siguientes detalles:
- Es el clúster afectado.
- Es la versión del parche que usa el nuevo hito.
- Son los hitos existentes y los nuevos.
- Indica cómo GKE pausa las actualizaciones automáticas de parches para los nodos.
La versión de parche que usa el nuevo hito eventualmente se convierte en el destino de actualización automática de parches para el clúster, y se pausan las actualizaciones automáticas de nodos. Los administradores del clúster deben decidir cuáles de los siguientes pasos seguir:
- Actualiza manualmente los nodos del clúster a la siguiente versión de parche, que usa el siguiente hito de Container-Optimized OS.
- Actualiza el clúster de forma manual a la siguiente versión secundaria.
- No apliques actualizaciones de parches hasta que GKE actualice el clúster a la siguiente versión secundaria cerca del final del período de asistencia extendida.
Para obtener más información, consulta El hito de Container-Optimized OS llega al final de la compatibilidad antes del final de la compatibilidad extendida de la versión secundaria.
Visualiza las notificaciones del clúster en Cloud Logging
Para ver los registros de los clústeres de GKE, consulta Cómo acceder a tus registros.
Para inhabilitar el almacenamiento de estos registros, puedes configurar un filtro de exclusión.
Visualiza los registros en Cloud Logging con el siguiente filtro para ver todos los tipos de notificaciones del clúster:
logName=projects/PROJECT_ID/logs/container.googleapis.com%2Fnotifications
Reemplaza PROJECT_ID
por el Google Cloud ID del proyecto.
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
Reemplaza NOTIFICATION_TYPE
por el tipo de notificación del clúster para los registros que quieras ver.
Filtra las notificaciones de clúster 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
Reemplaza EVENT_TYPE
por uno de los siguientes valores:
- Se completó la operación de actualización:
UPGRADE_LIFECYCLE
- Versión secundaria cerca del final del período de asistencia:
END_OF_SUPPORT
- Las nuevas versiones de parche cambian a un nuevo hito de Container-Optimized OS durante la asistencia extendida:
COS_MILESTONE_VERSION_UPDATE
Filtrado de notificaciones en Pub/Sub
Puedes filtrar las notificaciones de clúster para asegurarte de solo recibir las notificaciones que deseas en Pub/Sub. Puedes aplicar el filtrado de notificaciones a Pub/Sub de una de las siguientes maneras:
Para ver y filtrar notificaciones en Cloud Logging, consulta Cómo ver notificaciones de clúster en Cloud Logging.
Filtrado de notificaciones a Pub/Sub en GKE
Puedes configurar el filtrado en Pub/Sub para 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 a través de Pub/Sub.
El filtrado de notificaciones en GKE no afecta los registros que aparecen en Cloud Logging.
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. | us-central1-c |
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 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
El resultado es similar al siguiente para 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
El resultado es similar al siguiente para 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
El resultado es similar al siguiente para 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"} |
UpgradeInfoEvent
El resultado es similar al siguiente para un mensaje de UpgradeInfoEvent
cuando se completa una operación de actualización, como este ejemplo para una actualización de 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/ |
Este resultado es diferente de cuando los mensajes son para una versión secundaria en el final de la asistencia o cerca de él, o cuando las nuevas versiones de parche cambian a un nuevo hito de Container-Optimized OS durante la asistencia extendida.
¿Qué sigue?
- Aprende a recibir notificaciones de clúster a través de Pub/Sub.
- Obtén más información sobre cómo configurar las notificaciones de clúster para servicios de terceros.