Azure Kubernetes Service (AKS) における Network Observability のセットアップ - BYO Prometheus と Grafana
AKS Network Observability は、AKS クラスターのネットワーク トラフィック データを収集するために使用されます。 Network Observability 機能により、アプリケーションとネットワークの正常性を監視する一元化されたプラットフォームが実現します。 Prometheus が収集した AKS Network Observability メトリックは、Grafana によって視覚化されます。 Cilium データ プレーンと非 Cilium データ プレーンの両方がサポートされています。 この記事では、Network Observability アドオンを有効にし、BYO Prometheus と Grafana を使用して、スクレイピングされたメトリックを視覚化する方法について説明します。
Note
Kubernetes バージョン 1.29 以降、ネットワーク監視機能では Bring Your Own (BYO) Prometheus と Grafana がサポートされなくなりました。 ただし、Azure Managed Prometheus と Grafana オファリングを使用して有効にすることはできます
重要
AKS Network Observability は現在プレビューの段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
AKS Network Observability について詳しくは、「Azure Kubernetes Service (AKS) Network Observability とは」をご覧ください。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
BYO Prometheus と Grafana のインストール。
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
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
クラスターの資格情報を取得する
az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
Grafana の視覚化を有効にする
次の例を使用して、Prometheus でスクレイピング ジョブを構成し、AKS クラスターに対し Grafana の視覚化を有効にします。
注意
次のセクションでは、Prometheus と Grafana のインストールが必要です。
既存の Prometheus 構成に次のスクレイピング ジョブを追加し、Prometheus サーバーを再起動します。
scrape_configs: - job_name: "network-obs-pods" kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_container_name] action: keep regex: kappie(.*) - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] separator: ":" regex: ([^:]+)(?::\d+)? target_label: __address__ replacement: ${1}:${2} action: replace - source_labels: [__meta_kubernetes_pod_node_name] action: replace target_label: instance metric_relabel_configs: - source_labels: [__name__] action: keep regex: (.*)
Prometheus のターゲットに、network-obs-pods が存在することを確認します。
Grafana にサインインし、ID 18814 を使用して Network Observability ダッシュボードをインポートします。
リソースをクリーンアップする
このアプリケーションを引き続き使用しない場合は、次の例を参考にして、この記事で作成した AKS クラスターとその他のリソースを削除します。
az group delete \
--name myResourceGroup
次の手順
このハウツー記事では、AKS クラスターに AKS Network Observability をインストールして有効にする方法について説明しました。
AKS Network Observability について詳しくは、「Azure Kubernetes Service (AKS) Network Observability とは」をご覧ください。
Network Observability とマネージド Prometheus および Grafana を使用して AKS クラスターを作成するには、「Azure Kubernetes Service (AKS) の Azure マネージド Prometheus と Grafana の Network Observability を設定する」をご覧ください。
Azure Kubernetes Service
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示