Azure Kubernetes Service (AKS) の Network Observability を設定する - Azure Managed Prometheus と Grafana

AKS Network Observability は、AKS クラスターのネットワーク トラフィック データを収集するために使用されます。 Network Observability 機能により、アプリケーションとネットワークの正常性を監視する一元化されたプラットフォームが実現します。 Prometheus が収集した AKS Network Observability メトリックは、Grafana によって視覚化されます。 Cilium データ プレーンと非 Cilium データ プレーンの両方がサポートされています。 この記事では、Network Observability アドオンを有効にし、Azure Managed Prometheus と Grafana を使用して、スクレイピングされたメトリックを視覚化する方法について説明します。

AKS Network Observability について詳しくは、「Azure Kubernetes Service (AKS) Network Observability とは」をご覧ください。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

  • この記事の手順に必要な Azure CLI の最小バージョンは 2.44.0 です。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。

クラスターの作成

Note

Kubernetes バージョン >= 1.29 の場合、Network Observability は Azure Managed Prometheus を使用するクラスターに含まれています。 メトリック スクレイピングは、AMA メトリック プロファイルを使用して定義されます。

Kubernetes のバージョンが低い場合は、Network Observability を有効にするために追加の手順が必要です。

リソース グループを作成する

リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 az group create コマンドを使用して、リソース グループを作成します。 次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。

az group create \
    --name myResourceGroup \
    --location eastus

AKS クラスターの作成

az aks create を使用して AKS クラスターを作成します。 次の例では、myResourceGroup リソース グループに myAKSCluster という名前の AKS クラスターをそれぞれ作成しています。

例 1: Non-Cilium

次の例では az aks create を使用して、Cilium 以外の AKS クラスターを作成します。

az aks create \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --location eastus \
    --generate-ssh-keys \
    --network-plugin azure \
    --network-plugin-mode overlay \
    --pod-cidr 192.168.0.0/16 \
    --kubernetes-version 1.29

例 2: Cilium

次の例では az aks create を使用して、Cilium AKS クラスターを作成します。

az aks create \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --generate-ssh-keys \
    --location eastus \
    --max-pods 250 \
    --network-plugin azure \
    --network-plugin-mode overlay \
    --network-dataplane cilium \
    --node-count 2 \
    --pod-cidr 192.168.0.0/16

Azure Managed Prometheus と Grafana

次の例を参考にして、AKS クラスターに対して Prometheus と Grafana をインストールして有効にします。

Azure Monitor リソースの作成

az resource create \
    --resource-group myResourceGroup \
    --namespace microsoft.monitor \
    --resource-type accounts \
    --name myAzureMonitor \
    --location eastus \
    --properties '{}'

Grafana インスタンスを作成する

az grafana create を使用して、Grafana インスタンスを作成します。 Grafana インスタンスの名前は一意である必要があります。 myGrafana を、一意の Grafana インスタンス名に置き換えてください。

az grafana create \
    --name myGrafana \
    --resource-group myResourceGroup 

Grafana と Azure Monitor のリソース ID を変数に設定する

az grafana show を使用して、Grafana リソース ID を変数に設定します。 az resource show を使用して、Azure Monitor リソース ID を変数に設定します。 myGrafana を、使用する Grafana インスタンス名に置き換えてください。

grafanaId=$(az grafana show \
                --name myGrafana \
                --resource-group myResourceGroup \
                --query id \
                --output tsv)

azuremonitorId=$(az resource show \
                    --resource-group myResourceGroup \
                    --name myAzureMonitor \
                    --resource-type "Microsoft.Monitor/accounts" \
                    --query id \
                    --output tsv)

az aks update を使用して、Azure Monitor リソースと Grafana リソースを AKS クラスターにリンクします。

az aks update \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --enable-azure-monitor-metrics \
    --azure-monitor-workspace-resource-id $azuremonitorId \
    --grafana-resource-id $grafanaId

クラスターの資格情報を取得する

az aks get-credentials --name myAKSCluster --resource-group myResourceGroup

Grafana を使用して視覚化する

Note

次のセクションでは、Azure Managed Prometheus と Grafana のデプロイが必要です。

  1. 次の例を参考にして、Azure Monitor ポッドが実行されていることを確認します。

    kubectl get po -owide -n kube-system | grep ama-
    
    ama-metrics-5bc6c6d948-zkgc9          2/2     Running   0 (21h ago)   26h
    ama-metrics-ksm-556d86b5dc-2ndkv      1/1     Running   0 (26h ago)   26h
    ama-metrics-node-lbwcj                2/2     Running   0 (21h ago)   26h
    ama-metrics-node-rzkzn                2/2     Running   0 (21h ago)   26h
    ama-metrics-win-node-gqnkw            2/2     Running   0 (26h ago)   26h
    ama-metrics-win-node-tkrm8            2/2     Running   0 (26h ago)   26h
    
  2. Web ブラウザーで Grafana インスタンスに移動します。

  3. サンプル ダッシュボードを作成しました。 これは、[ダッシューボード]> [Azure Managed Prometheus] > [Kubernetes / ネットワーク / クラスター] にあります。

  4. [Kubernetes / ネットワーク / クラスター] Grafana ダッシュボードのメトリックが表示されているかどうかを確認します。 メトリックが表示されない場合は、右上のドロップダウン ボックスで時間の範囲を過去 15 分間に変更します。


リソースをクリーンアップする

このアプリケーションを引き続き使用しない場合は、次の例を参考にして、この記事で作成した AKS クラスターとその他のリソースを削除します。

  az group delete \
    --name myResourceGroup

次のステップ

このハウツー記事では、AKS クラスターの AKS Network Observability を設定する方法について学習しました。