Pub/Sub を通じてクラスタ通知を受け取る

このページでは、Pub/Sub を使用して Google Kubernetes Engine(GKE)クラスタに関する通知を受信する方法について説明します。

GKE は、デフォルトでこれらの通知を Cloud Logging にルーティングします。ログのクエリと表示ログベースのアラート ポリシーの構成など、Cloud Logging のすべての機能を使用できます。Cloud Logging でこれらのログを確認するには、Cloud Logging でクラスタ通知を表示するをご覧ください。

概要

スケジュール設定された重要なアップグレードや利用可能なセキュリティ情報など、GKE クラスタに関連する特定のイベントが発生すると、GKE は、構成した Pub/Sub トピックにメッセージとしてイベントの通知をパブリッシュします。これらの通知を Pub/Sub サブスクリプションで受信し、サードパーティ サービスと統合して、受信したい通知タイプをフィルタできます。

クラスタ通知のメリット、通知の仕組み、フィルタリングが重要な理由に関する詳細は、クラスタ通知をご覧ください。新規および既存の Standard クラスタを使用するか、既存の Autopilot クラスタを更新して、クラスタ通知を構成できます。

始める前に

作業を始める前に、次のタスクが完了していることを確認してください。

  • Google Kubernetes Engine API を有効にする。
  • Google Kubernetes Engine API の有効化
  • このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、gcloud components update コマンドを実行して最新のバージョンを取得します。以前のバージョンの gcloud CLI では、このドキュメントのコマンドを実行できない場合があります。

プロジェクト横断クラスタ通知の権限

クラスタとは異なるプロジェクトの Pub/Sub トピックを使用するには、トピック プロジェクトからクラスタ プロジェクトの service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com サービス アカウントに次のロールを付与します。

既存のクラスタでクラスタ通知を有効にする

既存のクラスタでの GKE クラスタ通知は、Google Cloud CLI または Google Cloud コンソールを使用して有効にできます。

すべてのクラスタに対して 1 つのトピックを作成することも、クラスタのグループに対して複数のトピックを作成することもできます。

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. [自動化] セクションで、[通知] の横にある [通知を編集] をクリックします。

  4. [通知を編集] ダイアログで、[通知を有効にする] チェックボックスをオンにします。

  5. プルダウン リストから、作成した Pub/Sub トピックを選択します。

  6. 通知をフィルタリングするには、[通知タイプをフィルタする] チェックボックスをオンにして、受信する通知タイプを選択します。

  7. [保存] をクリックします。

通知を有効にした後、トピックのサブスクリプションの種類を選択します。

クラスタ通知をフィルタする

通知を通知タイプでフィルタすると、必要な通知を受け取ることができます。

次の方法でフィルタする通知を選択できます。

  • GKE: クラスタ通知の有効化の前の例で示したように、--notification-config フラグに filter の値を指定します。
  • Pub/Sub: サブスクリプションの作成時にメッセージをフィルタするように Pub/Sub サブスクリプションを構成します。

GKE で既存のフィルタを変更する

既存の GKE クラスタ通知フィルタを変更するには、既存のクラスタで通知を有効にするの手順を行い、gcloud コマンドでフィルタする新しい通知タイプを指定するか、 Google Cloud コンソールで新しいタイプを選択します。

GKE でフィルタを無効にする

GKE 通知フィルタは、gcloud CLI または Google Cloud コンソールを使用して無効にし、クラスタに該当するすべての通知タイプを受け取ることができます。

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. [自動化] セクションで、[通知] の横にある [通知を編集] をクリックします。

  4. [通知を編集] ダイアログで、[通知タイプをフィルタする] チェックボックスをオフにします。

  5. [変更を保存] をクリックします。

クラスタ通知の設定を確認する

Autopilot モードでは、クラスタの通知を次のように確認できます。

  1. コントロール プレーンのアップグレードを開始します。
  2. GKE がノードを新しいバージョンに自動的にアップグレードするまで待ちます。所要時間は、構成したメンテナンスの時間枠と除外によって変動する場合があります。
  3. GKE がノードをアップグレードしたら、Pub/Sub サブスクリプションを確認します。

Standard モードでは、クラスタの通知を次のように確認できます。

  1. 特定のノードプールを新しいバージョンにアップグレードします。ノード上の 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. [自動化] セクションで、[通知] の横にある [通知を編集] をクリックします。

  4. [通知を編集] ダイアログで、[通知を有効にする] チェックボックスをオフにします。

  5. [変更を保存] をクリックします。

必要に応じて、通知用に作成した Pub/Sub トピックを削除します。

次のステップ