このドキュメントでは、GKE 接続クラスタを Cloud Logging と統合する方法と、ログにアクセスする方法について説明します。
概要
GKE 接続クラスタは、ワークロードと、ワーカーノードで実行されているシステム コンポーネントの、Cloud Logging をサポートしています。
GKE 接続クラスタには、Daemonset としてワーカーノードで実行される Fluentbit ベースの Logging エージェントが含まれています。Cloud Logging のドキュメントで説明されているように、ロギング エージェントが収集したデータは、他の指標やログデータと同様に管理、削除できます。
始める前に
GKE 接続クラスタの前提条件を満たしている。
Cloud Logging と Cloud Monitoring を承認し、Google Cloud Observability の権限を設定する。
収集されるデータの種類
GKE 接続クラスタは、次の情報のいずれかまたはすべてを取得するように構成できます。
- ワークロードのログ
ロギングを有効にする
クラスタをアタッチするときにロギングモードを指定しない場合、GKE 接続クラスタはデフォルトでシステム ロギングを有効にします。ワークロードのロギングには、クラスタが Kubernetes バージョン 1.23 以降である必要があります。
クラスタを接続するときにワークロードのロギングを有効にするには、EKS クラスタを接続する手順に沿って、オプションの --logging
フラグを gcloud container attached clusters register
コマンドに含めます。
gcloud container attached clusters register CLUSTER_NAME ... --logging=LOGGING_FLAG
すでに接続されているクラスタでワークロード ロギングを有効にするには、EKS クラスタを更新する手順に沿って、オプションの --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_NAME の gke-connect-agent
コンテナのログを取得します。
resource.type="k8s_container"
resource.labels.cluster_name="attachedClusters/CLUSTER_NAME"
resource.labels.container_name="gke-connect-agent"