Azure Kubernetes 服务 (AKS) 的网络可观测性设置 - Azure 托管的 Prometheus 和 Grafana
AKS 网络可观测性用于收集 AKS 群集的网络流量数据。 网络可观测性支持用于监视应用程序和网络运行状况的集中式平台。 Prometheus 负责收集 AKS 网络可观测性指标,而 Grafana 将它们可视化。 支持 Cilium 和非 Cilium 数据平面。 本文介绍如何启用网络可观测性加载项,并使用 Azure 托管的 Prometheus 和 Grafana 可视化抓取的指标。
重要
AKS 网络可观测性目前处于预览状态。 有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Azure 预览版的补充使用条款。
有关 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。
安装 Azure CLI aks-preview
扩展
重要
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 命令创建资源组。 以下示例在“chinanorth”位置创建名为“myResourceGroup”的资源组:
az group create \
--name myResourceGroup \
--location chinanorth
创建 AKS 群集
使用 az aks create 创建 AKS 群集。 以下示例在 myResourceGroup 资源组中创建名为 myAKSCluster 的 AKS 群集:
非 Cilium 群集支持在现有群集上或在创建新群集期间启用网络可观测性。
在以下示例中使用 az aks create 创建具有网络可观测性和非 Cilium 的 AKS 群集。
新建群集
az aks create \
--name myAKSCluster \
--resource-group myResourceGroup \
--location chinanorth \
--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 Monitor 资源
az resource create \
--resource-group myResourceGroup \
--namespace microsoft.monitor \
--resource-type accounts \
--name myAzureMonitor \
--location chinanorth \
--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
从左侧导航菜单中选择“仪表板”,打开“托管 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 设置网络可观测性。