Azure Kubernetes 服务 (AKS) 的网络可观测性设置 - BYO Prometheus 和 Grafana
AKS 网络可观测性用于收集 AKS 群集的网络流量数据。 网络可观测性支持用于监视应用程序和网络运行状况的集中式平台。 Prometheus 负责收集 AKS 网络可观测性指标,而 Grafana 将它们可视化。 支持 Cilium 和非 Cilium 数据平面。 本文介绍如何启用网络可观测性加载项,并使用 BYO Prometheus 和 Grafana 可视化抓取的指标。
注意
从 Kubernetes 版本 1.29 开始,网络可观测性功能不再支持自带 (BYO) Prometheus 和 Grafana。 但是,仍可以使用 Azure 托管 Prometheus 和 Grafana 产品/服务启用它
重要
AKS 网络可观测性目前处于预览状态。 有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Azure 预览版的补充使用条款。
有关 AKS 网络可观测性的详细信息,请参阅什么是 Azure Kubernetes 服务 (AKS) 网络可观测性?。
先决条件
具有活动订阅的 Azure 帐户。 创建帐户。
BYO Prometheus 和 Grafana 的安装。
如需在本地运行 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
获取群集凭据
az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
在 Grafana 上启用可视化效果
使用以下示例在 Prometheus 上配置抓取作业,并在 Grafana 上为 AKS 群集启用可视化效果。
注意
以下部分要求安装 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 导入网络可观测性仪表板。
清理资源
如果不打算继续使用此应用程序,请使用以下示例删除本文中创建的 AKS 群集和其他资源:
az group delete \
--name myResourceGroup
后续步骤
本操作指南文章介绍了如何为 AKS 群集安装和启用 AKS 网络可观测性。
有关 AKS 网络可观测性的详细信息,请参阅什么是 Azure Kubernetes 服务 (AKS) 网络可观测性?。
若要创建具有网络可观测性以及托管 Prometheus 和 Grafana 的 AKS 群集,请参阅为 Azure Kubernetes 服务 (AKS) Azure 托管 Prometheus 和 Grafana 设置网络可观测性。