Cette page explique comment Google Kubernetes Engine (GKE) publie par défaut les notifications de cluster dans Cloud Logging et, éventuellement, dans Pub/Sub. Ces notifications contiennent des informations sur les événements pertinents pour la configuration de votre cluster, comme les mises à niveau disponibles ou en cours, les bulletins de sécurité et les dates de fin de prise en charge.
Présentation
En cas d'événements se rapportant à vos clusters GKE, tels que des mises à niveau importantes disponibles ou des bulletins de sécurité, GKE envoie ces notifications à Cloud Logging. Pour trouver ces journaux dans Cloud Logging, consultez Afficher les notifications de cluster dans Cloud Logging.
GKE publie également des notifications sur ces événements sous forme de messages dans les sujets Pub/Sub que vous configurez. Vous pouvez recevoir ces notifications sur un abonnement Pub/Sub, les intégrer à des services tiers et filtrer les types de notifications que vous souhaitez recevoir. Pour savoir comment configurer les notifications de cluster avec Pub/Sub, consultez Recevoir des notifications de cluster via Pub/Sub.
Avantages
Les notifications de cluster offrent les avantages suivants :
- Vous êtes averti lorsque des bulletins de sécurité spécifiques à vos clusters sont émis, ce qui vous fournit des informations précises sur les risques et l'impact.
- Vous êtes averti lorsqu'une nouvelle version de GKE est disponible pour votre cluster, ce qui vous permet de mieux planifier les tests et les qualifications, et de garantir la fluidité d'un processus de mise à niveau prévisible. Auparavant, vous deviez consulter les notes de version de GKE ou l'API GKE pour savoir si une nouvelle version de GKE a été publiée.
- Vous êtes averti lorsque GKE ou un utilisateur lance des mises à niveau du cluster, et lorsque l'opération de mise à niveau se termine, ce qui vous offre une meilleure visibilité sur les opérations en arrière-plan de votre cluster.
- Vous êtes averti lorsque votre cluster exécute une version mineure de GKE qui arrive à la fin de sa période de prise en charge ou qui en est proche.
Vous pouvez choisir d'utiliser Cloud Logging ou Pub/Sub :
- Les notifications de cluster sont envoyées à Cloud Logging par défaut. Vous pouvez utiliser toutes les fonctionnalités de Cloud Logging, y compris interroger et afficher les journaux, et configurer des règles d'alerte basées sur les journaux.
- Pub/Sub est une solution hautement extensible, qui vous offre toute flexibilité pour le traitement des notifications entrantes. Par exemple, vous pouvez l'intégrer avec Slack pour transférer les notifications vers une chaîne Slack, ou faire appel aux fonctions Cloud Run pour exécuter des processus personnalisés. Lorsque des processus personnalisés sont requis (par exemple, orchestrer un workflow englobant préproduction et production pour tester et certifier une mise à niveau), vous pouvez utiliser la notification pour déclencher automatiquement ces workflows.
Types de notifications de mise à niveau
GKE envoie les types de notifications de cluster suivants :
SecurityBulletinEvent
UpgradeAvailableEvent
UpgradeEvent
UpgradeInfoEvent
, qui inclut les types d'événements suivants :
Si vous affichez les notifications de cluster dans Cloud Logging, vous pouvez utiliser les fonctionnalités de Cloud Logging pour filtrer les journaux. Si vous utilisez Pub/Sub, vous pouvez filtrer les notifications que vous recevez afin de n'être averti que des événements pertinents.
SecurityBulletinEvent
Lorsque GKE émet un bulletin de sécurité directement lié à la configuration ou à la version de votre cluster, il envoie une notification SecurityBulletinEvent
qui vous fournit des informations sur la faille, et, le cas échéant, les mesures que vous pouvez prendre.
UpgradeAvailableEvent
À l'arrivée d'une nouvelle version sur un canal de publication, GKE envoie une notification UpgradeAvailableEvent
aux clusters de ce canal de publication afin de les informer qu'une nouvelle version est désormais disponible. Cette notification est émise une semaine à l'avance pour les versions de correctif et au moins deux à quatre semaines à l'avance pour les versions mineures (selon le canal). Pour plus d'informations, consultez la section Versions disponibles sur un canal.
Pour les clusters qui ne figurent pas dans un canal de distribution, GKE envoie des notifications UpgradeAvailableEvent
concernant toutes les nouvelles versions auxquelles les clusters peuvent passer, y compris les correctifs de la version mineure en cours et la version mineure suivante.
Si vous utilisez des pools de nœuds Windows Server, les informations de version de Windows sont envoyées dans le cadre de la notification UpgradeAvailableEvent
.
UpgradeEvent
Lorsque vous-même ou GKE déclenchez une mise à niveau, GKE envoie une notification UpgradeEvent
vous informant qu'une mise à niveau a commencé. Dans l'idéal, vous devez utiliser le type de notification UpgradeAvailableEvent
pour être informé de la mise à niveau à venir afin de pouvoir effectuer la mise à niveau à l'avance ou prendre les mesures nécessaires pour la préparer, telle que la configuration de intervalles de maintenance.
La notification UpgradeEvent
est envoyée au début de l'opération de mise à niveau.
L'ID d'opération associé est transmis dans le message.
UpgradeInfoEvent
GKE envoie une notification UpgradeInfoEvent
pour différents types d'événements, qui sont décrits dans les sections suivantes.
Pour en savoir plus sur le filtrage d'un type spécifique de UpgradeInfoEvent
, consultez Filtrer les notifications de cluster UpgradeInfoEvent
.
L'opération de mise à niveau est terminée
Lorsque GKE termine l'opération de mise à niveau automatique ou manuelle du plan de contrôle ou des nœuds d'un cluster, il vous envoie une notification pour vous informer que l'opération est terminée. L'opération se termine avec l'un des états suivants :
SUCCEEDED
: GKE a mis à niveau le plan de contrôle ou les nœuds.FAILED
: GKE n'a pas réussi à mettre à niveau le plan de contrôle ni les nœuds.CANCELED
: GKE a annulé l'opération de mise à niveau pour des raisons techniques ou commerciales, ou vous avez annulé l'opération de mise à niveau.
Utilisez la notification pour confirmer la réussite d'une opération de mise à niveau.
Version mineure en fin de période d'assistance ou proche
Lorsque votre cluster exécute une version mineure de GKE qui approche de la fin de l'assistance standard ou de la fin de l'assistance étendue, ou qui a atteint l'une de ces étapes, GKE vous envoie des notifications vous informant que vous devez mettre à niveau le plan de contrôle ou les nœuds de votre cluster vers la prochaine version mineure compatible. L'exécution d'une version mineure compatible vous permet de continuer à recevoir des correctifs de sécurité, des corrections de bugs et de l'assistance. GKE envoie une notification 30 jours avant la fin de la période de compatibilité et une notification à la fin de la période de compatibilité, si votre cluster exécute toujours la version mineure.
GKE envoie des notifications au niveau du cluster, même si plusieurs composants de votre cluster peuvent être affectés et que votre cluster peut exécuter différentes versions mineures en même temps. Si la version mineure arrive à la fin de l'assistance standard et que vous avez besoin de temps pour préparer la mise à niveau vers une version compatible, vous pouvez passer au version disponible étendu pour bénéficier d'une assistance à long terme. Sinon, GKE planifie des mises à niveau automatiques à la fin de la période de compatibilité. Ces notifications vous aident à vous préparer à l'application de ces règles de fin de prise en charge.
Une notification inclut les informations suivantes :
- Cluster concerné.
- Version actuelle qui arrive au terme de la période de prise en charge ou qui en est proche.
- Date de fin de l'assistance.
Pour en savoir plus sur le calendrier d'assistance pour les versions mineures de GKE, consultez le cycle de vie des versions mineures de GKE.
Passage à un nouveau jalon Container-Optimized OS pour les nouvelles versions de correctif pendant l'assistance étendue
Lorsque votre cluster est inscrit au canal Extended pendant la période d'assistance étendue et que l'étape Container-Optimized OS utilisée par la version mineure de GKE arrive en fin de compatibilité avant la version mineure, GKE envoie une notification au cluster. GKE envoie cette notification lorsque la première version de correctif utilisant la nouvelle étape clé devient disponible dans le canal étendu.
Cette notification inclut les informations suivantes :
- Cluster concerné.
- Version corrective qui utilise la nouvelle étape.
- Les étapes existantes et nouvelles.
- Comment GKE met en veille les mises à niveau automatiques des correctifs pour les nœuds.
La version de correctif qui utilise le nouveau jalon devient finalement la cible de mise à niveau automatique des correctifs pour le cluster, et les mises à niveau automatiques des nœuds sont suspendues. Les administrateurs de cluster doivent choisir l'une des étapes suivantes :
- Mettez à niveau manuellement les nœuds du cluster vers la version de correctif suivante, qui utilise le prochain jalon Container-Optimized OS.
- Mettez à niveau manuellement le cluster vers la version mineure suivante.
- Renoncez aux mises à niveau des correctifs jusqu'à ce que GKE mette à niveau le cluster vers la prochaine version mineure vers la fin de la période d'assistance étendue.
Pour en savoir plus, consultez L'étape Container-Optimized OS arrive en fin de compatibilité avant la fin de l'assistance étendue de la version mineure.
Afficher les notifications de cluster dans Cloud Logging
Pour afficher les journaux des clusters GKE, consultez Accéder à vos journaux.
Pour ne pas stocker ces journaux, vous pouvez configurer un filtre d'exclusion.
Affichez les journaux dans Cloud Logging avec le filtre suivant pour voir tous les types de notifications de cluster :
logName=projects/PROJECT_ID/logs/container.googleapis.com%2Fnotifications
Remplacez PROJECT_ID
par l'ID de votre projet Trusted Cloud by S3NS .
Affichez les journaux avec le filtre suivant pour voir un type de notification de cluster spécifique, tel que UpgradeEvent
:
jsonPayload.@type=type.googleapis.com/google.container.v1beta1.NOTIFICATION_TYPE
Remplacez NOTIFICATION_TYPE
par le type de notification de cluster pour les journaux que vous souhaitez afficher.
Filtrer les notifications de cluster UpgradeInfoEvent
Affichez les journaux avec le filtre suivant pour voir un UpgradeInfoEvent
spécifique, comme la notification indiquant qu'une opération de mise à niveau est terminée :
jsonPayload.@type=type.googleapis.com/google.container.v1beta1.UpgradeInfoEvent
jsonPayload.eventType=EVENT_TYPE
Remplacez EVENT_TYPE
par l'un des éléments suivants :
- L'opération de mise à niveau est terminée :
UPGRADE_LIFECYCLE
- Version mineure en fin de période d'assistance ou presque :
END_OF_SUPPORT
- Les nouvelles versions de correctifs passent à la nouvelle étape de Container-Optimized OS pendant la période d'assistance étendue :
COS_MILESTONE_VERSION_UPDATE
Filtrer les notifications vers Pub/Sub
Vous pouvez filtrer les notifications de cluster pour vous assurer de ne recevoir que celles que vous souhaitez dans Pub/Sub. Vous pouvez appliquer le filtrage des notifications à Pub/Sub de l'une des manières suivantes :
Pour afficher et filtrer les notifications dans Cloud Logging, consultez Afficher les notifications de cluster dans Cloud Logging.
Filtrer les notifications vers Pub/Sub dans GKE
Vous pouvez configurer le filtrage vers Pub/Sub pour un ou plusieurs types de notifications disponibles lorsque vous activez les notifications de cluster en spécifiant des valeurs pour filter
dans l'option --notification-config
. filter
utilise une liste délimitée par des barres verticales ( | ) des types de notifications que vous souhaitez recevoir.
Par exemple, si vous spécifiez filter="UpgradeEvent|SecurityBulletinEvent"
, vous indiquez à GKE de n'envoyer que des notifications pour les types de notifications UpgradeEvent
et SecurityBulletinEvent
.
Le filtrage des notifications à l'aide de filter
présente les avantages suivants :
- Utilisation facilitée, car ils permettent de filtrer le type de notification sans utiliser de syntaxe spécifique ;
- Les notifications que vous filtrez ne sont jamais envoyées à Pub/Sub. Par conséquent, les messages non distribués ne vous sont pas facturés.
- Vous pouvez modifier la configuration du filtre à tout moment.
Pour obtenir des instructions sur le filtrage des notifications dans GKE, consultez Recevoir des notifications de cluster via Pub/Sub.
Le filtrage des notifications dans GKE n'a aucune incidence sur les journaux qui s'affichent dans Cloud Logging.
Filtrer les notifications dans Pub/Sub.
Pub/Sub permet de filtrer les messages de votre abonnement à l'aide d'une syntaxe de filtrage. Lorsque vous utilisez cette méthode, GKE transmet tous les types de notifications à votre sujet Pub/Sub. Pub/Sub filtre les messages en fonction de la configuration de votre abonnement et envoie les messages que vous souhaitez recevoir.
Par exemple, vous pouvez filtrer les notifications UpgradeEvent
et UpgradeAvailableEvent
à l'aide de la syntaxe suivante dans votre abonnement :
attributes.type_url = "type.googleapis.com/google.container.v1beta1.UpgradeEvent" OR "type.googleapis.com/google.container.v1beta1.UpgradeAvailableEvent"
Vous êtes toujours facturé pour les messages non distribués filtrés par votre abonnement. Vous ne pouvez pas non plus modifier les filtres après avoir configuré l'abonnement. Cependant, la syntaxe de filtrage est plus extensible que le filtrage dans GKE.
Pour en savoir plus sur le filtrage de votre abonnement Pub/Sub, consultez la section Filtrer des messages.
Consommer des messages Pub/Sub
Les messages Pub/Sub contiennent deux champs : data
(chaîne) et attributes
(mappage chaîne à chaîne).
Pour les notifications GKE, le champ data
contient des informations lisibles. Le champ attributes
contient des informations de notification génériques telles que le type de notification, l'ID de votre projet, le nom du cluster et son emplacement.
Le champ attributes.payload
est une chaîne analysable par JSON qui contient des informations de notification spécifiques, telles que les détails d'un bulletin de sécurité.
Les notifications comportent toujours les attributs suivants :
Attribut | Description | Exemple |
---|---|---|
project_id |
Numéro du projet propriétaire du cluster. | 123456789 |
cluster_location |
Emplacement du cluster. | us-central1-c |
cluster_name |
Nom du cluster. | example-cluster |
type_url |
Type de notification. | type.googleapis.com/google.container.v1beta1.UpgradeEvent
|
payload |
Chaîne au format JSON, pouvant être analysée et contenant des informations spécifiques aux notifications. | { "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 envoie toujours des types de notifications beta
. Cependant, vous pouvez analyser la charge utile pour afficher le type de notification GA correspondant s'il est disponible.
Exemples de messages de notification de cluster
En plus du texte dans le champ data
, chaque message envoyé par GKE à Cloud Logging ou Pub/Sub possède des valeurs spécifiques dans les champs attributes.type_url
et attributes.payload
. Les tableaux suivants présentent des exemples d'informations que vous pouvez recevoir pour chaque type de notification :
SecurityBulletinEvent
Le résultat ressemble à ce qui suit pour un message SecurityBulletinEvent
:
Attributs | |
---|---|
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
Le résultat ressemble à ce qui suit pour un message UpgradeAvailableEvent
:
Attributs | |
---|---|
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
Le résultat ressemble à ce qui suit pour un message UpgradeEvent
:
Attributs | |
---|---|
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
Le résultat ressemble à ce qui suit pour un message UpgradeInfoEvent
lorsqu'une opération de mise à niveau est terminée, comme dans cet exemple pour une mise à niveau de pool de nœuds :
Attributs | |
---|---|
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/ |
Ce résultat est différent de celui qui s'affiche lorsque les messages concernent une version mineure en fin de compatibilité ou presque, ou lorsque de nouvelles versions de correctifs passent à une nouvelle étape de Container-Optimized OS pendant l'assistance étendue.
Étapes suivantes
- Découvrez comment recevoir des notifications de cluster via Pub/Sub.
- Découvrez comment configurer des notifications de cluster pour des services tiers.