GKE Dataplane V2 のオブザーバビリティは、GKE Dataplane V2 指標と Kubernetes ワークロードに関する分析情報を提供します。GKE Dataplane V2 のオブザーバビリティにより、GKE バージョン 1.28 以降では次のことが可能になります。
- Google Cloud Managed Service for Prometheus と Cloud Monitoring で Metrics Explorer を使用してネットワーク指標のキャプチャ、モニタリング、アラート通知を行う
- クラスタ内の特定の Service のトラフィック フローを把握する
- Kubernetes ワークロードのネットワークの健全性の問題を把握して特定する
- Kubernetes ネットワーク ポリシーを確認する
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 は、フローポート エンドポイントを KubernetesClusterIP
Service としてポート 443 で公開します。hubble-relay
Pod は KubernetesClusterIP
Service のバックエンドであり、KubernetesClusterIP
Service へのすべてのリクエストはhubble-relay
Pod に転送されます。フローポートには、Hubble CLI または Hubble UI を使用してアクセスできます。
制限事項
- GKE Dataplane V2 のオブザーバビリティでは、クラスタ全体のノード数に 5,000 の上限が適用されます。
- GKE Dataplane V2 の指標とオブザーバビリティは、GKE Dataplane V2 が有効になっているクラスタでのみ機能します。
- GKE Dataplane V2 指標は、フローベースの指標として実装され、接続情報を提供するという点で、Hubble 指標と似ています。この指標では、送信されたデータ量やパケット数はカウントされません。指標がフローベースであることから、ネットワーク フローで送信されるデータ量を正確に表すことはできません。