このページでは、アプリケーションの状態を把握し、その可用性と信頼性を維持する方法について説明します。
デフォルトのオブザーバビリティ機能
デフォルトでは、GKE クラスタは次のように構成されます。
- システムログ、監査ログ、アプリケーション ログを Cloud Logging に送信する。
- Cloud Monitoring にシステム指標を送信する。
- Google Cloud Managed Service for Prometheus を使用して、構成済みのサードパーティ指標とユーザー定義指標を収集し、Cloud Monitoring に送信する。Google Cloud Managed Service for Prometheus を使用すると、Prometheus を使用してワークロードのモニタリングとアラートを行うことができます。Prometheus を大規模に管理したり、手動で運用する必要はありません。
データ収集のカスタマイズと強化
デフォルトでは、GKE はクラスタごとにログを保存するための Logging リポジトリを作成します。GKE クラスタから Cloud Logging と Cloud Monitoring に送信するログと指標(存在する場合)を制御できます。
Google Cloud Managed Service for Prometheus を有効にするかどうかも制御できます。
GKE Autopilot クラスタでは、Cloud Monitoring と Cloud Logging のインテグレーションを無効にすることはできません。
その他のオブザーバビリティ指標
1 つ以上のオブザーバビリティ指標パッケージを有効にすると、追加のオブザーバビリティ指標を収集できます。
- コントロール プレーンの指標: Kubernetes API サーバー、スケジューラ、コントローラ マネージャーの指標を収集して、Kubernetes コンポーネントの状態をモニタリングします。これらの指標は、サービスレベル目標(SLO)を定義する際にサービスの状態を把握するのに有用なシグナルです。
- Kube 状態指標: Deployment、ノード、Pod などの Kubernetes オブジェクトの状態をモニタリングします。
- cAdvisor / kubelet 指標: コンテナと kubelet の健全性をモニタリングします。
プロジェクトで GKE Enterprise を有効にしている場合、クラスタの作成時にフリートに登録すると、これらの指標がデフォルトで有効になります。
サードパーティの指標とユーザー定義の指標
Postgres、MongoDB、Redis などのクラスタで実行されているサードパーティ アプリケーションをモニタリングするには、Google Cloud Managed Service for Prometheus の Prometheus エクスポーターを使用します。
カスタム エクスポーターを作成して、健全性とパフォーマンスについて他のシグナルをモニタリングすることもできます。
収集したデータを使用する
収集したデータを使用すると、アプリケーションの開発、デプロイ、保守の際に、アプリケーションの健全性の分析、デバッグ、トラブルシューティング、テストを行うことができます。
GKE には、すぐに使用できる組み込みのオブザーバビリティ機能が用意されています。
クラスタとワークロードの収集されたデータを GKE オブザーバビリティ ダッシュボードに表示します。提供されるダッシュボードは、次の目的でカスタマイズできます。
- CPU 使用率、メモリ使用率、対応待ちのインシデント数など、主要なクラスタ指標を表示します。
- インフラストラクチャ、ワークロード、Service 別にクラスタを表示します。
- Namespace、ノード、ワークロード、Service、Pod、コンテナを検査します。
- Pod とコンテナについて、時間の関数として指標を表示し、ログエントリを表示します。
必要に応じて、独自のダッシュボードを作成することも、Grafana ダッシュボードをインポートすることもできます。
[オブザーバビリティ] タブでは、推奨されるアラート ポリシーを作成して、問題に関する通知を受け取ることができます。アラートの詳細については、アラートの概要をご覧ください。
SLO を作成し、収集した GKE 指標を使用してサービスのパフォーマンス目標をモニタリングします。
GKE ハンドブックを使用して、スケジュールできない Pod や再起動後に繰り返しクラッシュするコンテナなどの一般的な問題のトラブルシューティングを行います。
ログ エクスプローラ、Metrics Explorer、Error Reporting などのツールを使用してデータを探索し、分析します。
Cloud Audit Logs の一部として管理アクティビティとアクセスを記録する GKE の監査ログを確認します。監査ログポリシーは、記録されるイベントと、ログエントリが管理アクティビティ ログとデータアクセス ログのどちらに属するかを決めます。
その他の機能
GKE は他の Google Cloud サービスと統合できるため、クラスタとワークロードのモニタリングと管理に役立ちます。
セキュリティ対策ダッシュボードを使用して、Google の基準と業界のベスト プラクティスに基づいてセキュリティ上の懸念事項を特定できます。
分析情報と推奨事項を確認して、クラスタを最適化します。
Kubernetes ネットワーク ポリシーに関する問題をトラブルシューティングするには、ネットワーク ポリシー ロギングを使用します。GKE Dataplane V2 を使用する場合、ネットワーク ポリシー ロギングは組み込まれています。
料金
Cloud Logging(Cloud Audit Logs を含む)、Cloud Monitoring、Google Cloud Managed Service for Prometheus との統合の料金は、収集されたログと指標の量に基づきます。詳細については、料金のページをご覧ください。
その他の機能に記載されている他の Google Cloud サービスが提供する機能には、別の料金が設定されています。詳細については、これらのドキュメント ページの料金セクションをご覧ください。
次のステップ
クラスタを観測する。ダッシュボードの表示、クラスタ情報の整理、アラートの詳細の表示を行う方法を確認する。
GKE クラスタノードで詳細な OS レベルの監査ロギングを有効にする。また、Cloud Logging にログをエクスポートする方法を確認する。