设置 Azure Kubernetes 服务 (AKS) 的网络可观测性 - Azure 托管的 Prometheus 和 Grafana
AKS 网络可观测性用于收集 AKS 群集的网络流量数据。 网络可观测性支持用于监视应用程序和网络运行状况的集中式平台。 Prometheus 负责收集 AKS 网络可观测性指标,而 Grafana 将它们可视化。 支持 Cilium 和非 Cilium 数据平面。 本文介绍如何启用网络可观测性加载项,并使用 Azure 托管的 Prometheus 和 Grafana 可视化抓取的指标。
有关 AKS 网络可观测性的详细信息,请参阅什么是 Azure Kubernetes 服务 (AKS) 网络可观测性?。
先决条件
- 具有活动订阅的 Azure 帐户。 创建帐户。
如需在本地运行 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。
创建群集
注意
对于 >= 1.29 的 Kubernetes 版本,具有 Azure 托管 Prometheus 的群集中包括了网络可观测性。 指标抓取是通过 AMA 指标配置文件定义的。
对于较低的 Kubernetes 版本,需要执行额外的步骤来启用网络可观测性。
创建资源组
资源组是在其中部署和管理 Azure 资源的逻辑容器。 使用 az group create 命令创建资源组。 以下示例在 eastus 位置创建名为 myResourceGroup 的资源组:
az group create \
--name myResourceGroup \
--location eastus
创建 AKS 群集
使用 az aks create 创建 AKS 群集。 以下示例每个都在 myResourceGroup 资源组中创建名为 myAKSCluster 的 AKS 群集。
示例 1:非 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 托管的 Prometheus 和 Grafana
使用以下示例为 AKS 群集安装并启用 Prometheus 和 Grafana。
创建 Azure Monitor 资源
az resource create \
--resource-group myResourceGroup \
--namespace microsoft.monitor \
--resource-type accounts \
--name myAzureMonitor \
--location chinanorth3 \
--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)
将 Azure Monitor 和 Grafana 链接到 AKS 群集
使用 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 托管的 Prometheus 和 Grafana。
使用以下示例验证 Azure Monitor 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
在 Web 浏览器中导航到你的 Grafana 实例。
我们已创建了一个示例仪表板。 可以在“仪表板”>“Azure 托管 Prometheus”>“Kubernetes / 网络 / 群集”下找到它。
检查“Kubernetes / 网络 / 群集”Grafana 仪表板中的指标是否可见。 如果未显示指标,请在右上角的下拉列表框中将时间范围更改为过去 15 分钟。
清理资源
如果不打算继续使用此应用程序,请使用以下示例删除本文中创建的 AKS 群集和其他资源:
az group delete \
--name myResourceGroup
后续步骤
在本操作指南文章中,你已学习了如何为 AKS 群集设置 AKS 网络可观测性。
有关 AKS 网络可观测性的详细信息,请参阅什么是 Azure Kubernetes 服务 (AKS) 网络可观测性?。
若要创建具有网络可观测性以及 BYO Prometheus 和 Grafana 的 AKS 群集,请参阅为 Azure Kubernetes 服务 (AKS) BYO Prometheus 和 Grafana 设置网络可观测性。