Azure Kubernetes ServiceをDatadogで監視する

Microsoftは最近、デプロイ、実行、スケールするKubernetesクラスターをマネージドサービスである、Azure Kubernetes Service(AKS)をリリースしました。追加設定不要でAKSインフラの総合的可視化をAzure MonitorとKubernetes のDatadogインテグレーションで実現できることを紹介します。

Datadogのインテグレートは、ヘルス状態、Docker、Kubernetes、Azure VMのリソースメトリックスを一つのスクリーンボード上で、簡単に可視化できます。

AKSでの動作方法

AKSは、Kubernetesクラスターを自動的にプロビジョニング、メンテナンス、スケールさせます。クラスター内のマスターノードを管理し、独自のコンテナーアプリケーションを、Azure VMノード、永続化ストレージ、仮想ネットワークのトラフィックルーティングなどに対応して実行します。
クラスターをスケールまたはアップグレードすると、AKSは確実に起動する処理を実施します。一つ以上の可用性セットにノードを配置すれば、各ノードで障害が発生してもアクセスができるように維持します。

クラスター用にAKSが自動的に作成したリソース

新しいAKSクラスターを作成すると、既存のリソースグループか新しいリソースグループに、必要なリソースが追加されます。Azure CLIを使用してAKS詳細を管理できるようkubeconfigファイルに書き込みます。一度、クラスターが起動すれば、kubectlやKubernetesダッシュボードでマニフェストの適用や管理タスクを処理できます。

AKSをDatadogで監視する

Kubernetes、Azure、コンテナーインフラ上で動作している全てのサービスからログと分散リクエストトレース、メトリックスを収集して、AKSのフル可視化をDatadogが可能にします。

AKSをDatadogで監視を始めるために、AzureとKubernetesのインテグレーションを設定する必要があります。Datadogが提供するYAMLマニフェストを使用してAKSクラスター内に、デーモンセットとしてDatadogエージェントをコンテナー化してデプロイします。AzureポータルとDatadog UIからAzureでDatadogに接続します。

Datadogエージェントの自動ディスカバリー機能がAKSで動かしているサービスとpodをトレースし続けます。

自動タグ付け

Datadogで、ほかの250種類以上に対応している監視できるテクノロジーと同じ場所で、AKSクラスターを監視できます。Datadogは自動的にリソースグループ、Kubernetes pod、Docker imageを含むAzure、Docker、Kubernetesからタグを取得します。AKSクラスターからデータを見るためにタグを使用できます。上の例では、Kubernetesサービス名とAzureリソースグループでフィルタリングして、クラスター内のコンテナーに出入りするネットワークトラフィックを比較しています。

コンテナーのヘルス状況概要をタグ(pod、可用性ゾーン、リソースグループなど)でグルーピングして、ダッシュボードにコンテナーマップとして追加できます。AKSクラスターがユーザーの行動や変化や、需要変化に応じてコンテナーのスケールアップ/ダウンをすると、自動的にコンテナーマップもリアルタイムにアップデートされて反映されます。

Kubernetesデプロイメントマニフェストの変更を反映するためにDatadogのコンテナーマップが更新される様子

ライブコンテナーとプロセス

数百から数千のコンテナーをKASで動かしている場合、DatadogのLive コンテナービューが、デプロイから流入するすべての運用データを素早く調べるのに役立ちます。Liveコンテナービューはリアルタイムにヘルスやリソース状況、すべてのクラスターのステータスなどAKSクラスターに関する情報を提供します。リソースメトリックスやグラフは、簡単にCPU使用率が高いや、メモリ使用率が高いコンテナーを探しだせます。

次の例では、resource_groupタグを使用して、特定のAKSクラスターを選択し、Kubernetesタグ「kube_service」でドリルダウンして、アプリケーションのフロントエンドサービス用のコンテナーのみを表示しています。

ライブプロセスモニタリングを設定すれば、ライブコンテナービューでプロセスやサブプロセスの階層関係を見たり、リソースをどれぐらい使用しているかを見ることができます。