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