設定 Azure Kubernetes Service 的網路可觀察性 (AKS) - Azure 受控 Prometheus 和 Grafana

AKS 網路可觀察性可用來收集 AKS 叢集的網路流量資料。 網路可觀察性可讓集中式平臺監視應用程式和網路健康情況。 Prometheus 會收集 AKS 網路可觀察性計量,Grafana 會將其視覺化。 支援 Cilium 和非 Cilium 資料平面。 在本文中,瞭解如何啟用網路可觀察性附加元件,並使用 Azure 受控 Prometheus 和 Grafana 將已擷取的計量視覺化。

重要

AKS 網路可觀察性目前為預覽狀態。 請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

如需 AKS 網路可觀察性的詳細資訊,請參閱 什麼是 Azure Kubernetes Service (AKS) 網路可觀察性?

必要條件

  • 本文步驟所需的 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"

等候功能在發行項之前先顯示 [已註冊 ]。

{
  "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 命令建立資源群組。 下列範例會在 eastus 位置建立名為 myResourceGroup 的資源群組:

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

建立 AKS 叢集

使用 az aks create 建立 AKS 叢集。 下列範例會在 myResourceGroup 資源群組中建立名為 myAKSCluster AKS 叢集:

非 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 \
    --enable-network-observability

現有的叢集

使用 az aks update 來啟用現有叢集的網路可檢視性。

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

Azure 受控 Prometheus 和 Grafana

使用下列範例,為您的 AKS 叢集安裝並啟用 Prometheus 和 Grafana。

建立 Azure 監視器資源

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

建立 Grafana 實例

使用 az grafana create 建立 Grafana 實例。 Grafana 實例的名稱必須是唯一的。 以 Grafana 實例的唯一名稱取代 myGrafana

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

將 Grafana 和 Azure 監視器資源識別碼放在變數中

使用 az grafana show 將 Grafana 資源識別碼放在變數中。 使用 az resource show 將 Azure 監視器資源識別碼放在變數中。 以 Grafana 實例的名稱取代 myGrafana

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 監視器和 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 受控 Prometheus 和 Grafana。

  1. 使用下列範例來確認 Azure 監視器 Pod 正在執行。

    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. 從左側導覽功能表中選取 [儀表板 ],開啟 [Managed Prometheus ] 資料夾下的 [Kubernetes/ 網路 ] 儀表板。

  3. 檢查 Kubernetes / Networking Grafana 儀表板中的 計量是否可見。 如果未顯示計量,請將時間範圍變更為右上方下拉式方塊中的 [過去 15 分鐘]。

清除資源

如果您不打算繼續使用此應用程式,請使用下列範例刪除 AKS 叢集和本文中建立的其他資源:

  az group delete \
    --name myResourceGroup

下一步

在本操作說明文章中,您已瞭解如何安裝和啟用 AKS 叢集的 AKS 網路可檢視性。