このドキュメントでは、Google Cloud Managed Service for Prometheus を使用して GKE Inference Gateway から指標を収集できるように、Google Kubernetes Engine の Deployment を構成する方法について説明します。このドキュメントでは、次の方法について説明します。
- GKE Inference Gateway を設定して指標を報告する。
- エクスポートされた指標を収集するために、Managed Service for Prometheus の ClusterPodMonitoring リソースを構成する。
- Cloud Monitoring のダッシュボードにアクセスして指標を表示する。
以下の手順は、Managed Service for Prometheus でマネージド コレクションを使用している場合にのみ適用されます。セルフデプロイ コレクションを使用している場合は、GKE Inference Gateway のドキュメントでインストール情報をご覧ください。
以下の手順は一例であり、ほとんどの Kubernetes 環境で機能します。セキュリティ ポリシーや組織のポリシーの制限により、アプリケーションやエクスポータのインストールに問題がある場合は、オープンソース ドキュメントでサポート情報を確認することをおすすめします。
GKE Inference Gateway の詳細については、GKE Inference Gateway をご覧ください。
前提条件
Managed Service for Prometheus とマネージド コレクションを使用して GKE Inference Gateway エクスポータから指標を収集するには、Deployment が次の要件を満たしている必要があります。
- クラスタで Google Kubernetes Engine バージョン 1.28.15-gke.2475000 以降を実行している必要があります。
- マネージド コレクションを有効にして、Managed Service for Prometheus を実行する必要があります。詳細については、マネージド コレクションを使ってみるをご覧ください。
GKE Inference Gateway エクスポータが想定されるエンドポイントで指標を出力していることを確認するには、次の操作を行います。
Secret、ServiceAccount、ClusterRole、ClusterBinding を追加します。GKE Inference Gateway エクスポータのオブザーバビリティ エンドポイントは、認証トークンによって保護されています。認証情報を取得するために、クライアントには、接続された ClusterRole を持つサービス アカウントにマッピングする Secret が必要です(
nonResourceURLs: "/metrics", verbs: get
ルールの場合)。詳細については、サービス アカウントの Secret を作成するをご覧ください。次のコマンドを使用してポート転送を設定します。
kubectl -n NAMESPACE_NAME port-forward POD_NAME 9090
別のウィンドウで、次の操作を行います。
次のコマンドを実行してトークンを取得します。
TOKEN=$(kubectl -n default get secret inference-gateway-sa-metrics-reader-secret -o jsonpath='{.secrets[0].name}' -o jsonpath='{.data.token}' | base64 --decode)
curl
ユーティリティを使用して、エンドポイントlocalhost:9090/metrics
にアクセスします。curl -H "Authorization: Bearer $TOKEN" localhost:9090/metrics
サービス アカウントの Secret を作成する
保護された GKE Inference Gateway エクスポータ エンドポイントの場合、Managed Service for Prometheus Operator には、gmp-system
Namespace での指標の収集を承認するための Secret が必要です。
クラスタで Autopilot モードを使用している場合は、gmp-system
を gke-gmp-system
に置き換えます。
次の Secret、ServiceAccount、ClusterRole、ClusterRoleBinding の構成を使用できます。
詳細については、エクスポータの指標とオブザーバビリティ ガイドをご覧ください。
構成の変更をローカル ファイルから適用するには、次のコマンドを実行します。
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Terraform を使用して構成を管理することもできます。
ClusterPodMonitoring リソースを定義する
ターゲット検出を行うために、Managed Service for Prometheus Operator には、同じ Namespace 内の GKE Inference Gateway エクスポータに対応する ClusterPodMonitoring リソースが必要です。
次の ClusterPodMonitoring 構成を使用できます。
GKE Inference Gateway は、別の Namespace から Secret にアクセスする必要があるため、PodMonitoring
リソースではなく ClusterPodMonitoring
リソースを使用します。
ClusterPodMonitoring
構成の matchLabels
セレクタで、inference-gateway-ext-proc
の app
の値を GKE Inference Gateway Deployment のラベルに置き換えることができます。
構成の変更をローカル ファイルから適用するには、次のコマンドを実行します。
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Terraform を使用して構成を管理することもできます。
構成を確認する
Metrics Explorer を使用すると、GKE Inference Gateway エクスポータが正しく構成されていることを確認できます。Cloud Monitoring が指標を取り込むまでに 1~2 分かかる場合があります。
指標が取り込まれていることを確認します。
-
Google Cloud コンソールで leaderboard Metrics explorer のページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。
- クエリビルダー ペインのツールバーで、[codeMQL] または [codePROMQL] という名前のボタンを選択します。
- [言語] で [PromQL] が選択されていることを確認します。言語切り替えボタンは、クエリの書式設定と同じツールバーにあります。
- 次のクエリを入力して実行します。
inference_model_request_total{cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}
ダッシュボードを表示する
Cloud Monitoring インテグレーションには、[GKE Inference Gateway Prometheus Overview] ダッシュボードが含まれています。ダッシュボードは、インテグレーションを構成すると自動的にインストールされます。インテグレーションをインストールすることなく、ダッシュボードの静的プレビューを表示することもできます。
インストールされているダッシュボードを表示する手順は次のとおりです。
-
Google Cloud コンソールで
[ダッシュボード] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。
- [ダッシュボード リスト] タブを選択します。
- [統合] カテゴリを選択します。
- ダッシュボードの名前(GKE Inference Gateway Prometheus Overview など)をクリックします。
ダッシュボードの静的プレビューを表示する手順は次のとおりです。
-
Google Cloud コンソールで
[インテグレーション] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。
- [デプロイメント プラットフォーム] フィルタの [Kubernetes Engine] をクリックします。
- GKE Inference Gateway インテグレーションを見つけ、[詳細を表示] をクリックします。
- [ダッシュボード] タブを選択します。
トラブルシューティング
指標の取り込みに関する問題のトラブルシューティングについては、取り込み側の問題のトラブルシューティングのエクスポータからの収集に関する問題をご覧ください。