GKE Dataplane V2 のオブザーバビリティについて


GKE Dataplane V2 のオブザーバビリティは、GKE Dataplane V2 指標と Kubernetes ワークロードに関する分析情報を提供します。GKE Dataplane V2 のオブザーバビリティにより、GKE バージョン 1.28 以降では次のことが可能になります。

GKE Dataplane V2 のオブザーバビリティには、次のトラブルシューティング ツールが用意されています。

  • Kubernetes クラスタのネットワーク トポロジ
  • ライブ トラフィック フローと接続情報を含む Kubernetes ネットワーク ポリシー判定テーブル
  • Kubernetes のトラフィック フローのトラブルシューティングを行うコマンドライン ツール

GKE Dataplane V2 指標

GKE Dataplane V2 指標は、次のトラフィック フロー情報を提供します。

  • トラフィック フロー: GKE が Pod と Service の間のフローをどのように処理するかについての分析情報。
  • ネットワーク ポリシーの適用: GKE が Kubernetes ネットワーク ポリシーを適用する方法に関する情報。

GKE Dataplane V2 指標を使用すると、次のツールを使用して Kubernetes ワークロードのモニタリングとトラブルシューティングを行えます。

  • Google Cloud Managed Service for Prometheus: GKE Dataplane V2 指標の表示と分析を行います。Google Cloud Managed Service for Prometheus の構成を変更することで、Google Cloud Managed Service for Prometheus の取り込み用に選択した指標を追加、削除できます。
  • Cloud Monitoring Metrics Explorer: Pod レベルのトラフィック フローの詳細を表示します。
  • Cloud Monitoring: 任意の指標を探して使用できます。たとえば、GKE Dataplane V2 指標が特定のしきい値を超えたときにトリガーされるアラートを作成できます。
  • セルフマネージドの Grafana: Google Cloud Managed Service for Prometheus によって収集された指標を可視化します。

Google Cloud Managed Service for Prometheus を有効にすると、次のようになります。

  • GKE が PodMonitoring リソースを作成する
  • GKE が指標エンドポイントを公開する

Google Cloud Managed Service for Prometheus で指標を使用し、PodMonitoring リソースを作成できるようにするには、クラスタで Google Cloud Managed Service for Prometheus を有効にする必要があります。Google Cloud Managed Service for Prometheus を有効にしない場合、GKE により指標エンドポイントは公開されますが、PodMonitoring リソースは作成されません。

クラスタに対して GKE Dataplane V2 指標を有効にすると、Google Cloud Managed Service for Prometheus は次の GKE Dataplane V2 指標を取り込みます。

GKE Dataplane V2 指標 種類 説明
prometheus.googleapis.com/pod_flow_egress_flows_count/counter 累積 Pod からの総フロー数。
prometheus.googleapis.com/pod_flow_ingress_flows_count/counter 累積 Pod への総フロー数。

GKE Dataplane V2 指標を有効にすると、各 Kubernetes ノードで指標ポートが開きます。

オープンソースのオブザーバビリティ プラットフォーム Hubble などから、追加の指標も使用できます。デフォルトでは、Google Cloud Managed Service for Prometheus はこうした追加の指標を取り込みませんが、それを収集するように Google Cloud Managed Service for Prometheus を構成できます。こうした指標を収集するには、PodMonitoring カスタム リソース(CR)を構成します。

次の表に、追加の Hubble 指標を示します。

Hubble 指標 種類 説明
hubble_flows_processed_total 累積 処理されたフローの総数。
hubble_drop_total 累積 ドロップされたフローの総数。
hubble_port_distribution_total 累積 ポート番号別に集約されたフロー処理総数。
hubble_tcp_flags_total 累積 特定の TCP フラグが設定されて処理されたフローの総数。
hubble_icmp_total 累積 処理された ICMP フローの総数。

GKE Dataplane V2 のオブザーバビリティ ツール

GKE Dataplane V2 のオブザーバビリティは、GKE Dataplane V2 でデプロイされた Kubernetes ワークロードのネットワーク オブザーバビリティとセキュリティ分析情報を備えたマネージド Hubble ソリューションを提供します。

GKE Dataplane V2 のオブザーバビリティを有効にすると、次のコンポーネントがクラスタにデプロイされます。

  • Hubble リレー: 各ノードから Pod に関するネットワーク テレメトリー データを収集するサービス。

  • Hubble CLI: クラスタ内のライブ トラフィック情報を提供するコマンドライン インターフェース ツール。

クラスタに対して GKE Dataplane V2 のオブザーバビリティを有効にすると、次のコンポーネントをデプロイできます。

  • Hubble UI: Hubble リレーによって収集されたネットワーク テレメトリー データの表示や分析に使用できるウェブベースのツール。Hubble UI をデプロイするには、GKE Dataplane V2 のオブザーバビリティを有効にする必要があります。

GKE Dataplane V2 指標とオブザーバビリティの仕組み

GKE Dataplane V2 のオブザーバビリティは、次のコンポーネントとツールを使用して指標を収集し、ネットワーク トラフィックに関する分析情報を提供します。

  • GKE Dataplane V2: GKE Dataplane V2 の指標とオブザーバビリティでは、eBPF に基づく GKE Dataplane V2 のデータパスを使用して、特定のワークロードに基づいて Pod のトラフィック フローとネットワーク ポリシーの適用に関する指標を収集します。

  • Google Cloud Managed Service for Prometheus: GKE Dataplane V2 指標では、集約した指標が Google Cloud Managed Service for Prometheus に取り込まれるように Google Cloud Managed Service for Prometheus エージェントが構成されています。Google Cloud Managed Service for Prometheus は、大量のデータを取り込んで保存できるスケーラブルなモニタリング ソリューションであり、Google Cloud Observability を基盤に構築することもできます。

  • Hubble: GKE Dataplane V2 のオブザーバビリティは、オープンソースのオブザーバビリティ プロジェクトである Hubble を使用しています。Hubble は、eBPF データプレーンでデプロイされた Kubernetes ワークロードのネットワーク オブザーバビリティとセキュリティ分析情報を有効にします。

    Hubble フローイベントは、次のタイミングで発生します。

    • ネットワーク接続が最初に確立されるとき

    • TCP 接続の状態を示す TCP フラグが最初に確認されたとき

    • 最後のフローイベントから少なくとも 5 秒が経過してパケットが送信されたとき

    Hubble 指標: Kubernetes クラスタ内のフローイベントの数をカウントし、相互に通信している Pod を特定できます。

  • 指標とオブザーバビリティの有効化: GKE Dataplane V2 とオブザーバビリティを個別に有効にできます。オープンソースの Hubble UI 機能でネットワーク トポロジの可視化を有効にするには、ネットワーク検査を有効にする必要があります。

  • Autopilot クラスタ:

    • 指標はデフォルトで有効になっています

    • オブザーバビリティ ツールはデフォルトで無効になっています

    • Google Cloud Managed Service for Prometheus で指標を収集するには、クラスタ PodMonitoring リソースを作成する必要があります

  • Standard クラスタ:

    • 指標はデフォルトで無効になっています

    • オブザーバビリティ ツールはデフォルトで無効になっています

    • Google Cloud Managed Service for Prometheus を有効にしている場合は、PodMonitoring リソースが自動的に作成されます

    • PodMonitoring リソースは、確実に存在としてマークされています。PodMonitoring リソースを編集してすべての指標を無効にすると、Google Cloud Managed Service for Prometheus への指標の送信を停止できます。

GKE Dataplane V2 のオブザーバビリティ エンドポイント

GKE Dataplane V2 のオブザーバビリティ コンポーネントによって、次の 2 つのオブザーバビリティ エンドポイントが公開されます。

  • 指標エンドポイント: Prometheus 形式でトラフィック指標を公開する HTTP エンドポイント。anetd Pod は、各クラスタノードの指標エンドポイントを、ポート 9965 で公開します。

  • フローポート: gRPC エンドポイント。hubble-relay Pod は、フローポート エンドポイントを Kubernetes ClusterIP Service としてポート 443 で公開します。hubble-relay Pod は Kubernetes ClusterIP Service のバックエンドであり、Kubernetes ClusterIP Service へのすべてのリクエストは hubble-relay Pod に転送されます。フローポートには、Hubble CLI または Hubble UI を使用してアクセスできます。

制限事項

  • GKE Dataplane V2 のオブザーバビリティでは、クラスタ全体のノード数に 5,000 の上限が適用されます。
  • GKE Dataplane V2 のオブザーバビリティは、GKE Dataplane V2 が有効になっているクラスタでのみ機能します。
  • GKE Dataplane V2 指標は、フローベースの指標として実装され、接続情報を提供するという点で、Hubble 指標と似ています。この指標では、送信されたデータ量やパケット数はカウントされません。指標がフローベースであることから、ネットワーク フローで送信されるデータ量を正確に表すことはできません。

次のステップ