Cette page explique comment Google Kubernetes Engine (GKE) publie des notifications de cluster dans Cloud Logging par défaut et, éventuellement, dans Pub/Sub. Ces notifications contiennent des informations sur les événements pertinents pour la configuration de votre cluster, tels que 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 la section 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 en savoir plus sur la configuration des 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 à expiration ou qui est proche de l'être.
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 la section Filtrer les notifications de cluster UpgradeInfoEvent
.
L'opération de mise à niveau est terminée
Lorsque GKE a terminé l'opération de mise à niveau automatique ou manuelle du plan de contrôle ou des nœuds d'un cluster, il 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 bien 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 ou 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 migration.
Version mineure en fin de prise en charge 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 qu'il a atteint l'une de ces étapes, GKE vous envoie des notifications vous indiquant que vous devez mettre à niveau le plan de contrôle ou les nœuds de votre cluster vers la prochaine version mineure compatible. En exécutant une version mineure compatible, vous continuez à recevoir des correctifs de sécurité, des corrections de bugs et une assistance. GKE envoie une notification 30 jours avant la fin de la période de compatibilité et une autre à 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 la période d'assistance standard et que vous avez besoin de temps pour préparer la mise à niveau vers une version prise en charge, vous pouvez basculer sur le 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 à la fin de sa période de prise en charge ou qui y est presque.
- Date de fin de compatibilité.
Pour en savoir plus sur le calendrier de prise en charge des versions mineures de GKE, consultez la section Cycle de vie d'une version mineure de GKE.
Les nouvelles versions de correctifs passent à un nouveau jalon de Container-Optimized OS pendant la période d'assistance étendue
Lorsque votre cluster est inscrit au canal Extended pendant la période d'assistance étendue et que le jalon Container-Optimized OS utilisé par la version mineure de GKE arrive en fin de compatibilité avant la version mineure, GKE envoie une notification de cluster. GKE envoie cette notification lorsque la première version de correctif utilisant le nouveau jalon devient disponible dans le canal étendu.
Cette notification comprend les informations suivantes:
- Cluster concerné.
- Version du correctif qui utilise le nouveau jalon.
- Les jalons existants et nouveaux.
- Comment GKE met en pause les mises à niveau automatiques des correctifs pour les nœuds
La version de correctif qui utilise le nouveau jalon devient finalement la cible de la mise à niveau automatique des correctifs pour le cluster, et les mises à niveau automatiques des nœuds sont suspendues. Les administrateurs de cluster doivent décider de la marche à suivre:
- Mettez à niveau manuellement les nœuds du cluster vers la prochaine version de correctif qui utilise le prochain jalon de Container-Optimized OS.
- Mettez à niveau manuellement le cluster vers la version mineure suivante.
- Évitez les mises à niveau de 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 la section La version de 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 la section Accéder à vos journaux.
Pour désactiver le stockage de ces journaux, vous pouvez configurer un filtre d'exclusion.
Affichez les journaux dans Cloud Logging avec le filtre suivant pour afficher tous les types de notifications de cluster:
logName=projects/PROJECT_ID/logs/container.googleapis.com%2Fnotifications
Remplacez PROJECT_ID
par l'ID de votre Google Cloud projet.
Affichez les journaux avec le filtre suivant pour afficher 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 du cluster pour les journaux que vous souhaitez afficher.
Filtrer les notifications de cluster UpgradeInfoEvent
Affichez les journaux avec le filtre suivant pour afficher un UpgradeInfoEvent
spécifique, comme la notification indiquant où 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 prise en charge ou presque:
END_OF_SUPPORT
- Les nouvelles versions de correctifs passent à un nouveau jalon Container-Optimized OS pendant la période de prise en charge étendue :
COS_MILESTONE_VERSION_UPDATE
Filtrer les notifications dans Pub/Sub
Vous pouvez filtrer les notifications de cluster pour vous assurer de ne recevoir que les notifications 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 envoyées à Pub/Sub dans GKE
Vous pouvez configurer le filtrage sur 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 la page 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 à celui-ci pour un message UpgradeInfoEvent
lorsque l'opération de mise à niveau est terminée, comme dans cet exemple de mise à niveau d'un 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/ |
Cette sortie est différente lorsque les messages concernent une version mineure en fin de compatibilité ou presque, ou lorsque les nouvelles versions de correctifs passent à un nouveau jalon de Container-Optimized OS pendant la période d'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.