Share via


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 の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

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 のインストールに関するページを参照してください。

aks-preview Azure CLI 拡張機能をインストールする

重要

AKS のプレビュー機能は、セルフサービスのオプトイン単位で利用できます。 プレビューは、"現状有姿のまま" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 AKS プレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は、運用環境での使用を意図していません。 詳細については、次のサポート記事を参照してください。

# Install the aks-preview extension
az extension add --name aks-preview

# Update the extension to make sure you have the latest version installed
az extension update --name aks-preview

NetworkObservabilityPreview 機能フラグを登録する

az feature register --namespace "Microsoft.ContainerService" --name "NetworkObservabilityPreview"

az feature show を使用して、機能フラグの登録状態をチェックします。

az feature show --namespace "Microsoft.ContainerService" --name "NetworkObservabilityPreview"

記事を読み進める前に、機能が "Registered" (登録済み) と表示されるまで待ちます。

{
  "id": "/subscriptions/23250d6d-28f0-41dd-9776-61fc80805b6e/providers/Microsoft.Features/providers/Microsoft.ContainerService/features/NetworkObservabilityPreview",
  "name": "Microsoft.ContainerService/NetworkObservabilityPreview",
  "properties": {
    "state": "Registering"
  },
  "type": "Microsoft.Features/providers/features"
}

機能が登録されたら、az provider register を使用して Microsoft.ContainerService リソース プロバイダーの登録を最新の情報に更新します。

az provider register -n Microsoft.ContainerService

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

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

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

Note

Kubernetes バージョン 1.29 以降では、AMA メトリック プロファイルと AFEC フラグ (NetworkObservabilityPreview) を使用して、一般提供に達するまでネットワーク監視が有効になります。

Kubernetes バージョン 1.29 以降では、Azure Kubernetes Service (AKS) クラスターを作成または更新するときに、--enable-network-observability タグは不要になりました。

Kubernetes バージョン 1.28 以前を実行している AKS クラスターの場合、ネットワーク監視を有効にするには、クラスターの作成または更新中に --enable-network-observability タグが必要です。

AKS クラスターの作成

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

非 Cilium のクラスターでは、既存のクラスターまたは新しいクラスターの作成時に、Network Observability の有効化がサポートされています。

次の例では、az aks create を使用して、Network Observability と非 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 \
    --enable-network-observability

既存のクラスター

既存のクラスターに対して Network Observability を有効にするには、az aks update を使用します。

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --enable-network-observability 

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 の視覚化を有効にする

注意

次のセクションでは、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. 左のナビゲーション メニューから [ダッシュボード] を選び、マネージド Prometheus フォルダーの下にある [Kubernetes/ネットワーク] ダッシュボードを開きます。

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

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

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

  az group delete \
    --name myResourceGroup

次の手順

このハウツー記事では、AKS クラスターに AKS Network Observability をインストールして有効にする方法について説明しました。