Azure では、Kubernetes インフラストラクチャのさまざまなレイヤーと、それに依存するアプリケーションの正常性とパフォーマンスを監視するために、 Azure Monitor に基づくサービスの完全なセットが提供されます。 これらのサービスは相互に連携して、 Azure Kubernetes Service (AKS) または AWS や GCP などの他のクラウドで実行されているクラスターに完全な監視ソリューションを提供します。
Cloud Native Computing Foundation によって承認されているクラウド ネイティブ テクノロジへの既存の投資がある場合や、組織が代替ツールを使用して、Splunk や Datadog などの Kubernetes ログを収集して分析する場合があります。 デプロイする Azure ツールとその構成の選択は、特定の環境の要件によって異なります。 既存の監視ソリューションを Azure Monitor に移行するか、Azure サービスを既存の環境に統合することができます。 たとえば、他のクラウドで Prometheus と Grafana 用の Azure のマネージド オファリングを使用したり、Azure の Kubernetes クラスターでこれらのツールの既存のインストールを使用したりできます。
ヒント
この記事では、Kubernetes クラスターとその上で実行されているワークロードの正常性とパフォーマンスを監視するために使用される Azure Monitor の機能について説明します。 それらを管理する一般的なロールに基づいて Kubernetes 環境のさまざまなレイヤーを監視するようにこれらのサービスを構成する方法のベスト プラクティスについては、 Azure Monitor とクラウド ネイティブ ツールを使用した Kubernetes クラスター の監視に関するページを参照してください。
Kubernetes レイヤー
次に、インフラストラクチャ レイヤーからアプリケーションまでの一般的な Kubernetes 環境の図を示します。 各レイヤーには個別の監視要件があり、それぞれ以下で説明するさまざまな Azure サービスによって対処されます。
ネットワーク レベル
Kubernetes クラスターとの間のトラフィックをサポートする仮想ネットワーク コンポーネントは、次のサービスで監視されます。
サービス | Description |
---|---|
ネットワークウォッチャー | Kubernetes クラスターによって使用される仮想ネットワークを監視し、検出された問題を診断するための Azure の一連のツール。 |
トラフィック分析 | フロー ログを分析してトラフィック フローに関する分析情報を提供する Network Watcher の機能。 |
ネットワーク分析情報 | さまざまなネットワーク コンポーネントのパフォーマンスと正常性を視覚的に表現し、Network Watcher の一部であるネットワーク監視ツールへのアクセスを提供する Azure Monitor の機能。 |
コンテナー レベル
コンテナー レベルには、デプロイ、コンテナー、レプリカセットなどの Kubernetes オブジェクト、API サーバー、クラウド コントローラー、kubelet などのクラスター コントロール プレーン コンポーネント、ノードとノード プールとして抽象化された仮想マシン スケール セットが含まれます。 これらのレイヤーは、次のサービスで監視されます。
サービス | Description |
---|---|
Prometheus 用の Azure Monitor マネージド サービス | Prometheus は、Cloud Native Compute Foundation のクラウドネイティブ メトリック ソリューションであり、Kubernetes クラスターからメトリック データを収集および分析するために使用される最も一般的なツールです。 Prometheus 用 Azure Monitor マネージド サービスは、Prometheus クエリ言語 (PromQL) および Prometheus アラートと互換性があり、視覚化のために Azure Managed Grafana と統合されるフル マネージド ソリューションです。 このサービスは、独自の Prometheus 環境を管理する複雑さなしで、オープン ソース ツールへの投資をサポートします。 |
コンテナー ログの収集 | Azure Monitor エージェント のコンテナー化されたバージョンを使用して、クラスター内の各ノードから stdout/stderr ログと Kubernetes イベントを収集する、AKS および Azure Arc 対応 Kubernetes クラスター用の Azure サービス。 Azure portal でデータを分析するか、 Log Analytics を使用してクエリを実行します。 |
コントロール プレーン ログの収集 | コントロール プレーン ログは、Azure Monitor の リソース ログ として実装されます。 診断 設定 を作成して、コンテナー ログと同じ Log Analytics ワークスペースでこれらのログを収集します。 |
Azure Arc 対応 Kubernetes | Azure を一元化されたコントロール プレーンとして使用して、オンプレミスまたは他のクラウドで実行されている Kubernetes クラスターにアタッチできます。 Arc エージェントをインストールすると、コンテナー ログ Prometheus メトリックのコレクションなど、同じ方法とツールを使用して AKS とハイブリッド クラスターを一緒に監視できます。 |
アプリケーション レベル
Kubernetes クラスターで実行されているアプリケーション ワークロードは、次のサービスで監視されます。
サービス | Description |
---|---|
Application Insights | Kubernetes クラスターで実行されているアプリケーションを開発、テスト、運用環境で監視するためのアプリケーション パフォーマンス監視 (APM) を提供する Azure Monitor の機能。 分散トレースを使用して、待機時間と信頼性の問題をすばやく特定して軽減します。 ベンダーに依存しないインストルメンテーションの OpenTelemetry をサポートします。 |
分析
Azure Monitor には、他の機能によって収集されたデータを分析するための複数のツールが用意されています。 環境内のすべてのクラスターの概要から始めて、1 つのクラスターの対話型ビューにドリルダウンします。 また、さまざまな Kubernetes テレメトリのセットを組み合わせたさまざまな Grafana ダッシュボードを利用することもできます。 プロアクティブ通知の場合は、Prometheus メトリックに基づいて一連の一般的なアラート ルールを有効にします。
サービス | Description |
---|---|
統合監視ダッシュボード | Azure portal の統合された監視ダッシュボードは、さまざまなサービスによって収集されたデータを統合して、1 つの画面で対話型分析を行います。 さまざまなクラスターの高レベルの状態を取得し、個々のクラスターとそのコンポーネントの詳細にドリルダウンします。 |
Azure Managed Grafana | Grafana のフル マネージド実装。これは、Prometheus やその他のデータを提示するために一般的に使用されるオープンソースのデータ視覚化プラットフォームです。 Kubernetes の監視とフル スタックのトラブルシューティングのために、複数の定義済みの Grafana ダッシュボードを使用できます。 |
Grafana を使用した Azure Monitor ダッシュボード (プレビュー) | 構成要件もコストもかからず、Azure portal に Grafana ダッシュボードを表示します。 複数のデータ ソース間でダッシュボードを必要としない場合は、Managed Grafana の代わりにこの機能を使用します。 |
次のステップ
- Azure Monitor 機能を構成 して Kubernetes 環境を監視するためのベスト プラクティスと推奨事項については、Azure Monitor とクラウド ネイティブ ツールを使用した Kubernetes クラスターの監視に関するページを参照してください。
- Kubernetes クラスターの監視を有効にして、クラスターで Managed Prometheus とログ収集を有効にする方法を参照してください。