Notifiche del cluster


Questa pagina descrive in che modo Google Kubernetes Engine (GKE) pubblica notifiche sul cluster in Pub/Sub e in Cloud Logging con informazioni sugli eventi pertinenti alla configurazione del cluster, ad esempio upgrade disponibili o in corso, bollettini sulla sicurezza e date di fine del supporto.

Per scoprire come configurare le notifiche del cluster con Pub/Sub, consulta Ricevere notifiche del cluster.

Panoramica

Quando si verificano determinati eventi pertinenti per i tuoi cluster GKE, come importanti upgrade disponibili o bollettini sulla sicurezza, GKE pubblica notifiche relative a questi eventi come messaggi negli argomenti Pub/Sub che configuri. Puoi ricevere queste notifiche in una sottoscrizione Pub/Sub, integrarle con servizi di terze partie filtrare in base ai tipi di notifiche che vuoi ricevere.

GKE inoltra inoltre queste notifiche a Cloud Logging. Per trovare questi log in Cloud Logging, consulta Visualizzazione delle notifiche del cluster in Cloud Logging (anteprima).

Vantaggi

Le notifiche del cluster offrono i seguenti vantaggi:

  • Riceverai una notifica quando vengono emessi bollettini sulla sicurezza specifici per i tuoi cluster, che forniscono informazioni accurate su rischi e impatto.
  • Riceverai una notifica quando è disponibile una nuova versione di GKE per il tuo cluster, in modo da poter pianificare meglio i test e le certificazioni e contribuire a garantire una procedura di upgrade fluida e prevedibile. In precedenza, dovevate controllare le note di rilascio di GKE o l'API GKE per scoprire quando veniva rilasciata una nuova versione di GKE.
  • Riceverai una notifica quando GKE o un utente avviano gli upgrade del cluster e al termine dell'operazione di upgrade, in modo da avere una maggiore visibilità sulle operazioni in background del cluster.
  • Riceverai una notifica quando nel tuo cluster è in esecuzione una versione secondaria GKE in fase di ritiro o prossima al ritiro.
  • Puoi scegliere se utilizzare Pub/Sub o Cloud Logging:

    • Le notifiche del cluster vengono inviate a Cloud Logging per impostazione predefinita. Puoi utilizzare tutte le funzionalità di Cloud Logging, tra cui eseguire query e visualizzare i log e configurare criteri di avviso basati su log.
    • Pub/Sub è altamente estendibile e ti offre la flessibilità di elaborare le notifiche in arrivo. Ad esempio, puoi eseguire l'integrazione con Slack per inoltrare le notifiche a un canale Slack o avviare funzioni Cloud Run per eseguire processi personalizzati. Quando sono necessarie procedure personalizzate (ad esempio, l'orchestrazione di un flusso di lavoro di staging in produzione per testare e certificare un upgrade), puoi utilizzare la notifica per attivare automaticamente questi flussi di lavoro.

Tipi di notifiche di upgrade

GKE invia i seguenti tipi di notifiche del cluster:

Se utilizzi Pub/Sub, puoi filtrare le notifiche che ricevi in modo da ricevere notifiche solo per gli eventi pertinenti. Se visualizzi le notifiche del cluster in Cloud Logging (anteprima), puoi utilizzare le funzionalità di Cloud Logging per filtrare i log.

SecurityBulletinEvent

Quando GKE emette un bollettino sulla sicurezza correlato direttamente alla configurazione o alla versione del tuo cluster, invia una notifica SecurityBulletinEvent con informazioni sulla vulnerabilità, sull'impatto e, se applicabile, sulle azioni che puoi intraprendere.

UpgradeAvailableEvent

Quando una nuova versione diventa disponibile in un canale di rilascio, GKE invia una notifica UpgradeAvailableEvent ai cluster di quel canale di rilascio per informarli che è ora disponibile una nuova versione. Questa notifica fornisce un preavviso di una settimana per le versioni patch e di almeno 2-4 settimane per le versioni secondarie (a seconda del canale). Per saperne di più, consulta Quali versioni sono disponibili in un canale.

Per i cluster non in un canale di rilascio, GKE invia UpgradeAvailableEvent notifiche per tutte le nuove versioni a cui i cluster possono eseguire l'upgrade, incluse le patch sulla versione secondaria corrente e sulla versione secondaria successiva.

Se utilizzi pool di nodi Windows Server, le informazioni sulla versione di Windows vengono inviate come parte della notifica UpgradeAvailableEvent.

UpgradeEvent

Quando tu o GKE avviate un upgrade, GKE invia una notifica UpgradeEvent per informarti che l'upgrade è iniziato. Idealmente, dovresti utilizzare il tipo di notifica UpgradeAvailableEvent per essere a conoscenza dell'imminente upgrade in modo da poter eseguire l'upgrade in anticipo o adottare le misure necessarie per la preparazione, ad esempio impostare periodi di manutenzione.

La notifica UpgradeEvent viene inviata all'inizio dell'operazione di upgrade. L'ID operazione viene passato nel messaggio.

UpgradeInfoEvent

GKE invia una UpgradeInfoEvent notifica per diversi tipi di eventi, descritti nelle sezioni seguenti.

L'operazione di upgrade è stata completata

Quando GKE completa l'operazione di upgrade automatico o manuale del piano di controllo o dei nodi di un cluster, invia una notifica per informarti che l'operazione è stata completata. L'operazione viene completata con uno dei seguenti stati:

  • SUCCEEDED: GKE ha eseguito l'upgrade del control plane o dei node.
  • FAILED: GKE non è riuscito a eseguire l'upgrade del piano di controllo o dei nodi.
  • CANCELED: GKE ha annullato l'operazione di upgrade per motivi tecnici o commerciali oppure hai annullato l'operazione di upgrade.

Utilizza la notifica per confermare il buon esito di un'operazione di upgrade.

Versione secondaria in fase di ritiro o prossima al ritiro

Quando il cluster esegue una versione secondaria GKE che sta per raggiungere la fine dell'assistenza standard o la fine del supporto esteso o ha raggiunto uno di questi traguardi, GKE invia notifiche che ti informano che devi eseguire l'upgrade del piano di controllo o dei nodi del cluster alla versione secondaria supportata successiva. L'esecuzione di una versione minore supportata ti garantisce di continuare a ricevere patch di sicurezza, correzioni di bug e assistenza. GKE invia una notifica 30 giorni prima della fine del supporto e un'altra al termine del supporto, se il tuo cluster esegue ancora la versione secondaria.

GKE invia notifiche a livello di cluster, anche se potrebbero essere interessati più componenti del cluster e il cluster può eseguire contemporaneamente diverse versioni secondarie. Se il supporto standard della versione minore sta per terminare e hai bisogno di tempo per prepararti a eseguire l'upgrade a una versione supportata, puoi passare al canale di rilascio esteso per ricevere assistenza a lungo termine. In caso contrario, GKE pianifica gli upgrade automatici al termine del supporto. Queste notifiche ti aiutano a prepararti all'applicazione di queste norme relative al ritiro del supporto.

Una notifica include i seguenti dettagli:

  • Il cluster interessato.
  • La versione corrente che sta per terminare o che è già in fase di ritiro.
  • La data di fine del supporto.

Per maggiori dettagli sulle tempistiche di assistenza per le versioni secondarie di GKE, consulta il ciclo di vita delle versioni secondarie di GKE.

Filtrare le notifiche in Pub/Sub

Puoi filtrare le notifiche del cluster per assicurarti di ricevere solo quelle che ti interessano in Pub/Sub. Puoi applicare i filtri per le notifiche a Pub/Sub in uno dei seguenti modi:

Per visualizzare e filtrare le notifiche in Cloud Logging, consulta Visualizzazione delle notifiche del cluster in Cloud Logging (anteprima).

Filtrare le notifiche in Pub/Sub in GKE

Puoi configurare il filtro per Pub/Sub per uno o più tipi di notifiche disponibili quando attivi le notifiche del cluster specificando i valori per filter nel flag --notification-config. filter accetta un elenco delimitato da barre verticali ( | ) dei tipi di notifica che vuoi ricevere.

Ad esempio, specificando filter="UpgradeEvent|SecurityBulletinEvent", GKE invia notifiche solo per i tipi di notifiche UpgradeEvent e SecurityBulletinEvent.

Il filtro delle notifiche utilizzando filter offre i seguenti vantaggi:

  • Più facile da usare, perché puoi filtrare in base al tipo di notifica senza utilizzare una sintassi specifica.
  • Le notifiche filtrate non vengono mai inviate a Pub/Sub, pertanto non ti vengono addebitate commissioni per i messaggi non recapitati.
  • Puoi modificare la configurazione del filtro in qualsiasi momento.

Per istruzioni su come filtrare le notifiche in GKE, consulta Ricevere notifiche del cluster.

Il filtro delle notifiche in GKE non influisce sui log visualizzati in Cloud Logging.

Filtrare le notifiche in Pub/Sub

Pub/Sub supporta il filtro dei messaggi nella sottoscrizione utilizzando una sintassi di filtro. Quando utilizzi questo metodo, GKE invia tutti i tipi di notifiche all'argomento Pub/Sub. Pub/Sub filtra i messaggi in base alla configurazione della sottoscrizione e consegna i messaggi che vuoi ricevere.

Ad esempio, puoi filtrare per notifiche UpgradeEvent e UpgradeAvailableEvent utilizzando la seguente sintassi nell'abbonamento:

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

Ti verranno comunque addebitati i messaggi non recapitati filtrati in base al tuo abbonamento. Inoltre, non puoi modificare i filtri dopo aver configurato l'abbonamento. Tuttavia, la sintassi di filtro è più estendibile rispetto al filtro in GKE.

Per scoprire di più su come filtrare la sottoscrizione Pub/Sub, consulta Filtrare i messaggi.

Visualizzazione delle notifiche del cluster in Cloud Logging (anteprima)

Per visualizzare i log dei cluster GKE, consulta Accedere ai log.

Visualizza i log in Cloud Logging con il seguente filtro per visualizzare tutti i tipi di notifiche del cluster:

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

Per visualizzare i log relativi a un tipo di notifica del cluster specifico, ad esempio UpgradeEvent, utilizza un filtro come nell'esempio seguente:

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

Sostituisci NOTIFICATION_TYPE con il tipo di notifica per i log che vuoi visualizzare.

Per disattivare la memorizzazione di questi log, puoi configurare un filtro di esclusione.

Utilizzo dei messaggi Pub/Sub

I messaggi Pub/Sub contengono due campi: data (stringa) e attributes (mappa da stringa a stringa).

Per le notifiche GKE, il campo data contiene informazioni in formato leggibile. Il campo attributes contiene informazioni generiche sulle notifiche, ad esempio il tipo di notifica, l'ID progetto, il nome del cluster e la posizione del cluster. Il campo attributes.payload è una stringa JSON analizzabile che contiene informazioni specifiche sulla notifica, ad esempio i dettagli di un bollettino sulla sicurezza.

Le notifiche contengono sempre i seguenti attributi:

Attributo Descrizione Esempio
project_id Il numero del progetto proprietario del cluster. 123456789
cluster_location La posizione del cluster. us-central1-c
cluster_name Il nome del cluster. example-cluster
type_url Il tipo di notifica. type.googleapis.com/google.container.v1beta1.UpgradeEvent
payload Una stringa JSON analizzabile contenente informazioni specifiche sulla notifica.
{ "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 invierà sempre tipi di notifiche beta. Tuttavia, puoi analizzare il payload per visualizzare il tipo di notifica GA corrispondente, se disponibile.

Messaggi di notifica del cluster di esempio

Oltre al testo nel campo data, ogni messaggio inviato da GKE a Pub/Sub ha valori specifici nei campi attributes.type_url e attributes.payload. Le tabelle seguenti mostrano esempi di informazioni che potresti ricevere per ogni tipo di notifica:

SecurityBulletinEvent

L'output è simile al seguente per un messaggio SecurityBulletinEvent:

Attributi
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

L'output è simile al seguente per un messaggio UpgradeAvailableEvent:

Attributi
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

L'output è simile al seguente per un messaggio UpgradeEvent:

Attributi
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

L'output è simile al seguente per un messaggio UpgradeInfoEvent quando un'operazione di upgrade viene completata, ad esempio questo esempio per un upgrade del node pool:

Attributi
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"}
      

Questa uscita è diversa da quando il messaggio riguarda una versione secondaria al termine o quasi dell'assistenza standard.

Passaggi successivi