通过 Pub/Sub 接收集群通知


本页面介绍如何使用 Pub/Sub 接收有关 Google Kubernetes Engine (GKE) 集群的通知。

GKE 默认会将这些通知路由到 Cloud Logging。您可以使用 Cloud Logging 的所有功能,包括查询和查看日志,以及配置基于日志的提醒政策。如需在 Cloud Logging 中查找这些日志,请参阅在 Cloud Logging 中查看集群通知

概览

当发生与 GKE 集群相关的特定事件时,例如重要的计划升级或可用安全公告,GKE 会将这些事件的通知作为消息发布到您配置的 Pub/Sub 主题。您可以在 Pub/Sub 订阅上接收这些通知,与第三方服务集成,并且可以过滤要接收的通知类型。

如需详细了解集群通知的优势、通知的工作原理以及过滤的重要性,请参阅集群通知。 您可以在新的和现有的标准集群中配置集群通知,还可以通过更新现有的 Autopilot 集群来配置集群通知。

准备工作

在开始之前,请确保您已执行以下任务:

  • 启用 Google Kubernetes Engine API。
  • 启用 Google Kubernetes Engine API
  • 如果您要使用 Google Cloud CLI 执行此任务,请安装初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行 gcloud components update 以获取最新版本。

跨项目集群通知所需的权限

如需使用与集群所在项目不同的项目中的 Pub/Sub 主题,请将主题项目中的以下角色授予给集群项目中的 service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com 服务账号:

在新集群上启用集群通知

您可以使用 Google Cloud CLI 或 Google Cloud 控制台在新的 Standard 集群上启用 GKE 集群通知。如需在 Autopilot 集群上启用通知,您必须先创建 Autopilot 集群,然后更新集群以使用集群通知

您可以选择为所有集群创建一个主题,也可以为多组集群创建多个主题。

gcloud

如需在新集群上启用集群通知,请运行以下命令:

gcloud container clusters create CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --notification-config=pubsub=ENABLED,pubsub-topic=projects/TOPIC_PROJECT_ID/topics/TOPIC_NAME,filter=NOTIFICATION_TYPE

替换以下内容:

  • CLUSTER_NAME:新集群的名称。
  • CONTROL_PLANE_LOCATION:集群控制平面的 Compute Engine 位置。为区域级集群提供区域,或为可用区级集群提供可用区。
  • TOPIC_PROJECT_ID:Pub/Sub 主题所属项目的 Google Cloud 项目 ID。如果主题项目与集群项目不同,请确保您已授予所需的权限。如需了解详情,请参阅跨项目集群通知所需的权限
  • TOPIC_NAME:您的 Pub/Sub 主题的名称。
  • NOTIFICATION_TYPE:要接收的通知类型的列表(以竖线 (|) 分隔)。例如,filter="UpgradeEvent|SecurityBulletinEvent" 仅发送 UpgradeEventSecurityBulletinEvent 通知,而忽略所有其他类型。

控制台

如需在新标准集群上启用集群通知,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往创建一个 Kubernetes 集群页面。

    前往“创建一个 Kubernetes 集群”页面

  2. 在导航窗格的集群部分中,点击 Automation

  3. 选中启用通知复选框。

  4. 从下拉列表中选择您创建的 Pub/Sub 主题。

  5. 如需过滤通知,请选中过滤通知类型复选框,然后选择要接收的通知类型。

  6. 继续配置集群。

  7. 点击创建

启用通知后,为您的主题选择订阅类型

在现有集群上启用集群通知

您可以使用 Google Cloud CLI 或 Google Cloud 控制台在现有集群上启用 GKE 集群通知。

您可以选择为所有集群创建一个主题,也可以为多组集群创建多个主题。

gcloud

如需在现有集群上启用集群通知,请运行以下命令:

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --notification-config=pubsub=ENABLED,pubsub-topic=projects/TOPIC_PROJECT_ID/topics/TOPIC_NAME,filter=NOTIFICATION_TYPE

替换以下内容:

  • CLUSTER_NAME:您的集群的名称。
  • CONTROL_PLANE_LOCATION:集群控制平面的 Compute Engine 位置。为区域级集群提供区域,或为可用区级集群提供可用区。
  • TOPIC_PROJECT_ID:Pub/Sub 主题所属项目的 Google Cloud 项目 ID。如果主题项目与集群项目不同,请确保您已授予所需的权限。如需了解详情,请参阅跨项目集群通知所需的权限
  • TOPIC_NAME:您的 Pub/Sub 主题的名称。
  • NOTIFICATION_TYPE:要接收的通知类型的列表(以竖线 (|) 分隔)。例如,filter="UpgradeEvent|SecurityBulletinEvent" 仅发送 UpgradeEventSecurityBulletinEvent 通知,而忽略所有其他类型。

控制台

如需在现有集群上启用集群通知,请执行以下操作:

  1. 前往 Google Cloud 控制台中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 点击要修改的集群的名称。

  3. Automation 部分的通知旁边,点击 修改通知

  4. 修改通知对话框中,选中启用通知复选框。

  5. 从下拉列表中选择您创建的 Pub/Sub 主题。

  6. 如需过滤通知,请选中过滤通知类型复选框,然后选择要接收的通知类型。

  7. 点击保存更改

启用通知后,为您的主题选择订阅类型

过滤集群通知

您可以按通知类型过滤通知,以确保收到所需的通知。

您可以选择使用以下方法过滤通知:

  • GKE:在 --notification-config 标志中指定 filter 的值,如先前启用集群通知的示例所示。
  • Pub/Sub:在创建订阅时配置 Pub/Sub 订阅以过滤消息

修改 GKE 中的现有过滤条件

如需修改现有 GKE 集群通知过滤条件,请按照在现有集群上启用通知中的说明进行操作,并在 gcloud 命令中指定要过滤的新通知类型或在 Google Cloud 控制台中选择新类型。

在 GKE 中停用过滤条件

您可以使用 gcloud CLI 或 Google Cloud 控制台停用 GKE 通知过滤条件并接收适用于集群的所有通知类型。

gcloud

如需使用 gcloud CLI 停用过滤条件,请运行以下命令:

gcloud container clusters update CLUSTER_NAME \
  --location=CONTROL_PLANE_LOCATION \
  --notification-config=pubsub=ENABLED,pubsub-topic=projects/TOPIC_PROJECT_ID/topics/TOPIC_NAME

控制台

如需使用 Google Cloud 控制台停用过滤条件,请执行以下操作:

  1. 前往 Google Cloud 控制台中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 点击要修改的集群的名称。

  3. Automation 部分的通知旁边,点击 修改通知

  4. 修改通知对话框中,清除过滤通知类型复选框。

  5. 点击保存更改

验证集群通知的设置

在 Autopilot 模式下,您可以按照以下步骤验证集群通知:

  1. 启动控制平面升级
  2. 等待 GKE 将您的节点自动升级到新版本。升级所用时间可能会因配置的维护窗口和排除项而异。
  3. 在 GKE 升级您的节点后,检查您的 Pub/Sub 订阅

在标准模式下,您可以按照以下步骤验证集群通知:

  1. 将特定节点池升级到新版本。如果您不想更改节点上的 GKE 版本,则可以升级到与当前节点相同的 GKE 版本。

  2. 在 GKE 升级您的节点后,检查您的 Pub/Sub 订阅

您只能手动验证 UpgradeEvent 通知类型的设置。如果您的过滤条件配置为忽略此类型,则不会看到消息。

停用集群通知

您可以使用 gcloud CLI 或Google Cloud 控制台停用集群通知。

gcloud

如需使用 gcloud CLI 停用通知,请运行以下命令:

gcloud container clusters update CLUSTER_NAME \
  --location=CONTROL_PLANE_LOCATION \
  --notification-config=pubsub=DISABLED

控制台

如需使用 Google Cloud 控制台停用通知,请执行以下操作:

  1. 前往 Google Cloud 控制台中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 点击要修改的集群的名称。

  3. Automation 部分的通知旁边,点击 修改通知

  4. 修改通知对话框中,清除启用通知复选框。

  5. 点击保存更改

(可选)删除您为通知创建的 Pub/Sub 主题

后续步骤