CNCF 準拠の接続クラスタに Cloud Logging をインストールする

このドキュメントでは、GKE 接続クラスタを Cloud Logging と統合する方法と、ログにアクセスする方法について説明します。

概要

GKE 接続クラスタは、ワークロードと、ワーカーノードで実行されているシステム コンポーネントの、Cloud Logging をサポートしています。

GKE 接続クラスタには、Daemonset としてワーカーノードで実行される Fluentbit ベースの Logging エージェントが含まれています。Cloud Logging のドキュメントで説明されているように、ロギング エージェントが収集したデータは、他の指標やログデータと同様に管理、削除できます。

始める前に

  1. GKE 接続クラスタの前提条件を満たしていること。

  2. Cloud Logging と Cloud Monitoring を承認し、Google Cloud Observability の権限を設定する。

収集されるデータの種類

GKE 接続クラスタは、次の情報のいずれかまたはすべてを取得するように構成できます。

  • ワークロードのログ

ロギングを有効にする

クラスタをアタッチするときにロギングモードを指定しない場合、GKE 接続クラスタはデフォルトでシステム ロギングを有効にします。ワークロードのロギングには、クラスタが Kubernetes バージョン 1.23 以降でなければなりません。

クラスタを接続するときにワークロードのロギングを有効にするには、CNCF 準拠クラスタを接続する手順に沿って、オプションの --logging フラグを gcloud container attached clusters register コマンドに含めます。

gcloud container attached clusters register CLUSTER_NAME
...
--logging=LOGGING_FLAG

すでに接続されているクラスタでワークロード ロギングを有効にするには、CNCF 準拠クラスタを更新する手順に沿って、オプションの --logging フラグを gcloud container attached clusters update コマンドに含めます。

gcloud container attached clusters update CLUSTER_NAME
...
--logging=LOGGING_FLAG

LOGGING_FLAG は、有効にするロギングの種類を示すフラグに置き換えます。

  • NONE: Logging を無効にします。
  • SYSTEM: 特定の名前空間で実行されているシステム ワークロードのロギングを有効にします。
  • SYSTEM,WORKLOAD: クラスタのワーカーノードでシステムとワークロードの両方のアクティビティ ロギングを有効にします。

ログにアクセスする

Cloud Logging の GKE 接続クラスタのログにアクセスするには、次に示す複数の方法があります。

  • ログ エクスプローラ - ログ エクスプローラからログを直接表示できます。ロギング フィルタを使用して、クラスタ、ノード、名前空間、Pod、コンテナのログなどの Kubernetes リソースを選択します。

  • Google Cloud CLI - gcloud logging read コマンドを使用して、適切なクラスタ、ノード、Pod、コンテナのログを選択します。

ログについて

Cloud Logging のログはログエントリを集めたもので、各ログエントリは特定の種類のロギング リソースに適用されます。

リソースタイプ

GKE 接続クラスタに固有のリソースタイプは次のとおりです。

リソースの種類 表示名
k8s_container ワークロード コンテナ ログ

GKE 接続クラスタがクラスタのログを書き込むと、各ログエントリにはリソースタイプが含まれます。ログが表示される場所を把握することによって、必要なときにログを簡単に見つけることができます。

システムアプリ ログ

システムアプリ ログは、k8s_container リソースタイプに分類されます。これには、GKE 接続クラスタによってワーカーノードにインストールされた Pod のログが含まれます。具体的には、次の名前空間で実行されるコンテナが含まれます。

  • gke-connect
  • gke-system
  • gmp-system
  • asm-user-auth
  • cnrm-system
  • config-management-system
  • gatekeeper-system
  • gmp-public
  • istio-system
  • knative-serving

Cloud Logging ユーザー インターフェースでログを検索する

Cloud Logging ユーザー インターフェースでは、ログ エクスプローラを使用してログを表示できます。

ログ エクスプローラ

クエリビルダーを使用すると、クエリ パラメータを手動で追加することでクエリを作成できます。たとえば、システム ワークロードのログを調べる場合は、k8s_container リソースタイプを選択または検索してから、ロケーションとクラスタ名を選択します。次に、コンテナまたは Pod 名をフィルタして、検索を絞り込むことができます。

ログ エクスプローラでは、ログフィールド エクスプローラを使用して検索クエリを作成できます。ここには、指定したログフィールドでログエントリ数が大きなものから順に表示されます。ログフィールド エクスプローラを使用すると、リソースの Kubernetes 値を簡単に選択できるため、GKE 接続クラスタのログでは特に便利です。たとえば、特定のクラスタ、名前空間、Pod 名、コンテナ名のログを選択できます。

詳細については、ログ エクスプローラの使用をご覧ください。

サンプルクエリ

このセクションでは、ログ エクスプローラで作成できるサンプルクエリを示します。

例 1: Google Cloud クラスタ CLUSTER_NAMEgke-connect-agent コンテナのログを取得します。

resource.type="k8s_container"
resource.labels.cluster_name="attachedClusters/CLUSTER_NAME"
resource.labels.container_name="gke-connect-agent"

次のステップ