Clusterbenachrichtigungen


Auf dieser Seite wird beschrieben, wie in Google Kubernetes Engine (GKE) Clusterbenachrichtigungen mit Informationen zu Ereignissen, die für Ihre Clusterkonfiguration relevant sind, in Pub/Sub veröffentlicht werden, z. B. verfügbare Upgrades und Sicherheitsbulletins.

Informationen zum Einrichten von Clusterbenachrichtigungen finden Sie unter Clusterbenachrichtigungen erhalten.

Überblick

Wenn bestimmte Ereignisse auftreten, die für Ihre GKE-Cluster relevant sind, z. B. wichtige geplante Upgrades oder verfügbare Sicherheitsbulletins, veröffentlicht GKE Benachrichtigungen zu diesen Ereignissen als Nachrichten in von Ihnen konfigurierten Pub/Sub-Themen. Sie können diese Benachrichtigungen für ein Pub/Sub-Abo empfangen, Dienste von Drittanbietern einbinden und nach den Benachrichtigungstypen filtern, die Sie erhalten möchten.

Vorteile

Die Verwendung von Pub/Sub zum Empfangen von Clusterbenachrichtigungen bietet folgende Vorteile:

  • Sie erhalten proaktive Informationen zu für Ihren Cluster geplanten Updates, mit denen Sie Tests und Qualifikationen besser planen können und der reibungslose und prognostizierte Upgradeprozess gewährleistet ist.
  • Sie werden benachrichtigt, wenn Sicherheitsbulletins speziell für Ihre Cluster ausgegeben werden. Dadurch erhalten Sie genaue Risiko- und Wirkungsinformationen.
  • Sie werden benachrichtigt, wenn eine neue GKE-Version verfügbar ist, auf die Sie ein Upgrade durchführen können. Bisher mussten Sie die GKE-Versionshinweise oder die GKE API prüfen, um zu ermitteln, wann eine neue GKE-Version veröffentlicht wurde.
  • Sie werden benachrichtigt, wenn entweder GKE oder ein Nutzer Clusterupgrades initiiert. Dadurch erhalten Sie einen besseren Einblick in die Hintergrundvorgänge Ihres Clusters.
  • Pub/Sub ist sehr erweiterbar, sodass Sie die Verarbeitung eingehender Benachrichtigungen flexibel gestalten können. Sie können beispielsweise Slack integrieren, um Benachrichtigungen an einen Slack-Kanal weiterzuleiten, oder Cloud Functions initialisieren, um benutzerdefinierte Prozesse auszuführen.
  • Wenn benutzerdefinierte Prozesse erforderlich sind, z. B. das Orchestrieren eines Staging-Vorgangs für den Produktionsworkflow zum Testen und Zertifizierung eines Upgrades, können Sie diese Workflows mithilfe der Benachrichtigung automatisch auslösen.

Arten von Upgradebenachrichtigungen

GKE sendet die folgenden Clusterbenachrichtigungstypen:

Sie können empfangene Benachrichtigungen filtern, sodass Sie nur bei relevanten Ereignissen benachrichtigt werden. Sie können Clusterbenachrichtigungen filtern, wenn Sie beim Aktivieren von Clusterbenachrichtigungen einen Wert für filter im Flag --notification-config angeben oder Ihr Pub/Sub-Abo konfigurieren

SecurityBulletinEvent

Wenn GKE ein Sicherheitsbulletin ausgibt, das sich direkt auf Ihre Clusterkonfiguration oder -version bezieht, sendet GKE eine SecurityBulletinEvent-Benachrichtigung mit Informationen zur Sicherheitslücke, die Auswirkungen und gegebenenfalls Maßnahmen, die Sie ergreifen können.

UpgradeAvailableEvent

Wenn eine neue Version in einer Release-Version verfügbar ist, sendet GKE eine UpgradeAvailableEvent-Benachrichtigung an Cluster in dieser Release-Version, um die Cluster zu informieren, dass jetzt eine neue Version verfügbar ist. Diese Benachrichtigung informiert Sie eine Woche im Voraus über Patchversionen und mindestens zwei bis vier Wochen im Voraus über Nebenversionen (je nach Kanal). Weitere Informationen finden Sie unter In einem Kanal verfügbare Versionen.

Bei Clustern, die sich nicht auf einer Release-Version befinden, sendet GKE UpgradeAvailableEvent-Benachrichtigungen für neue Versionen, auf die Cluster aktualisiert werden können (Patches auf der aktuellen Nebenversion und der nächsten Nebenversion).

Wenn Sie Windows Server-Knotenpools verwenden, werden Informationen zur Windows-Version als Teil der UpgradeAvailableEvent-Benachrichtigung gesendet.

UpgradeEvent

Wenn Sie oder GKE ein Upgrade initiieren, sendet GKE eine UpgradeEvent-Benachrichtigung, damit Sie wissen, dass ein Upgrade begonnen hat. Im Idealfall sollten Sie den Benachrichtigungstyp UpgradeAvailableEvent verwenden, um das bevorstehende Upgrade zu kennen, damit Sie entweder ein Upgrade im Voraus ausführen oder erforderliche Maßnahmen ergreifen können, z. B. die Einrichtung von Wartungsfenstern.

Die UpgradeEvent-Benachrichtigung wird zu Beginn des Upgradevorgangs gesendet. Die Vorgangs-ID wird in der Nachricht übergeben.

Benachrichtigungen filtern

Sie können Clusterbenachrichtigungen filtern, damit Sie nur die gewünschten Benachrichtigungen erhalten. Sie können die Filterung so anwenden:

Benachrichtigungen in GKE filtern

Sie können die Filterung für einen oder mehrere verfügbare Benachrichtigungstypen einrichten, wenn Sie Clusterbenachrichtigungen aktivieren. Geben Sie dazu Werte für filter im Flag --notification-config an. filter verwendet eine durch einen senkrechten Strich ( | ) getrennte Liste der Benachrichtigungstypen, die Sie erhalten möchten.

Wenn Sie beispielsweise filter="UpgradeEvent|SecurityBulletinEvent" angeben, wird GKE angewiesen, Benachrichtigungen nur für die Benachrichtigungstypen UpgradeEvent und SecurityBulletinEvent zu senden.

Das Filtern von Benachrichtigungen mit filter bietet folgende Vorteile:

  • Einfacher zu verwenden, da Sie nach dem Benachrichtigungstyp filtern, ohne eine bestimmte Syntax zu verwenden.
  • Ausgefilterte Benachrichtigungen werden nie an Pub/Sub gesendet. Daher werden Ihnen keine Gebühren für nicht zugestellte Nachrichten berechnet.
  • Sie können die Filterkonfiguration jederzeit bearbeiten.

Eine Anleitung zum Filtern von Benachrichtigungen in GKE finden Sie unter Clusterbenachrichtigungen erhalten.

Benachrichtigungen in Pub/Sub filtern

Pub/Sub unterstützt das Filtern von Nachrichten in Ihrem Abo mithilfe einer Filtersyntax. Wenn Sie diese Methode verwenden, liefert GKE alle Benachrichtigungstypen an Ihr Pub/Sub-Thema. Pub/Sub filtert Nachrichten basierend auf Ihrer Abokonfiguration und stellt die Nachrichten bereit, die Sie erhalten möchten.

Sie können beispielsweise mit der folgenden Syntax in Ihrem Abo nach UpgradeEvent- und UpgradeAvailableEvent-Benachrichtigungen filtern:

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

Für nicht zugestellte Nachrichten fallen weiterhin Gebühren an, die von Ihrem Abo gefiltert wurden. Sie können die Filter nach der Konfiguration des Abos nicht mehr ändern. Die Filtersyntax ist jedoch erweiterbarer als das Filtern in GKE.

Weitere Informationen zum Filtern von Pub/Sub-Abos finden Sie unter Nachrichten filtern.

Pub/Sub-Nachrichten verarbeiten

Pub/Sub-Nachrichten enthalten zwei Felder: data (String) und attributes (String-zu-String-Zuordnung).

Bei GKE-Benachrichtigungen enthält das Feld data für Menschen lesbare Informationen. Das Feld attributes enthält allgemeine Benachrichtigungsinformationen wie den Benachrichtigungstyp, Ihre Projekt-ID, den Clusternamen und den Clusterstandort. Das Feld attributes.payload ist ein JSON-parsbarer String, der bestimmte Benachrichtigungsinformationen enthält, z. B. die Details eines Sicherheitsbulletins.

Benachrichtigungen enthalten immer die folgenden Attribute:

Attribut Beschreibung Beispiel
project_id Die Projektnummer des Clusters. 123456789
cluster_location Der Standort des Clusters. us-central1-c example-location
cluster_name Der Name des Clusters. example-cluster
type_url Die Art der Benachrichtigung. type.googleapis.com/google.container.v1beta1.UpgradeEvent
payload Ein JSON-parsbarer String mit benachrichtigungsspezifischen Informationen.

{ "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 sendet immer beta-Benachrichtigungstypen. Sie können jedoch die Nutzlast parsen, damit der entsprechende GA-Benachrichtigungstyp angezeigt wird, sofern verfügbar.

Beispiele für Clusterbenachrichtigungen

Zusätzlich zum Text im Feld data hat jede Nachricht, die GKE an Pub/Sub sendet, bestimmte Werte in den Feldern attributes.type_url und attributes.payload. Die folgenden Tabellen enthalten Beispiele für die Informationen, die Sie für jeden Benachrichtigungstyp erhalten können:

SecurityBulletinEvent

Hier einige Ausgabebeispiele aus einer SecurityBulletinEvent-Nachricht:

Attribute
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

Hier einige Ausgabebeispiele aus einer UpgradeAvailableEvent-Nachricht:

Attribute
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

Hier einige Ausgabebeispiele aus einer UpgradeEvent-Nachricht:

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

Nächste Schritte