你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是高级容器网络服务?

高级容器网络服务是一套服务,旨在增强 Azure Kubernetes 服务 (AKS) 群集的网络功能。 该套件可解决新式容器化应用程序中的挑战,例如可观测性、安全性和合规性。

高级容器网络服务侧重于提供无缝集成体验,有助于保持可靠的安全态势,并深入了解网络流量和应用程序性能。 它有助于确保容器化应用程序不仅安全,而且还有助于满足或超过性能和可靠性目标。 高级容器网络服务可帮助你自信地管理和缩放基础结构。

高级容器网络服务中包括哪些功能?

高级容器网络服务提供两个关键功能:

  • 容器网络可观测性:高级容器网络服务套件的首个功能,它将 Hubble 控制平面的强大功能引入 Cilium 和非 Cilium Linux 数据平面。 这些功能用于了解网络和性能。

  • 容器网络安全: 对于使用由 Cilium 提供支持的 Azure CNI 的群集,网络策略包括完全限定的域名(FQDN)筛选,以解决维护配置的复杂性。

容器网络可观测性

AKS 中的容器网络可观测性是高级容器网络服务中的一项综合性功能集,旨在深入了解容器化环境中的网络流量和性能。 它可以跨 Cilium 和非 Cilium 数据平面无缝工作,为各种网络需求提供灵活性。 此功能使用 eBPF 在应用程序受到影响之前识别潜在的瓶颈和网络拥塞来提高可伸缩性和性能。

主要优势包括与 Azure 中的所有容器网络接口(CNI)变体兼容、节点级指标的详细可见性,以及域名系统(DNS)解析、Pod 到 Pod 通信和服务交互的 Hubble 指标。 容器网络日志捕获基本元数据,例如 IP、端口和流量流,以便进行故障排除、监视和安全强制。

它还与 Azure Monitor 和 Azure Managed Grafana 中的 Prometheus 托管服务集成,以简化指标存储和可视化。 无论是使用托管服务还是自己的基础结构,此可观测性解决方案都有助于确保 AKS 工作负载具有高性能、安全性和合规的网络环境。

容器网络可观测性体系结构示意图。

容器网络指标

此功能收集节点级指标,包括 CPU、内存和网络性能,以监视群集节点的运行状况。 为了更深入地了解,Hubble 指标提供有关 DNS 解析时间、服务到服务通信和 Pod 级网络行为的数据。 这些指标可帮助你分析应用程序性能、检测异常情况和优化工作负荷。

有关详细信息,请参阅 指标概述

容器网络日志

容器网络日志通过捕获源 IP 地址、端口、协议和流方向等元数据,深入了解群集内部和跨群集的流量。 这些日志支持监视网络行为、排查连接问题以及强制实施安全策略。 持久性和实时日志记录选项可确保全面、可操作的网络可观测性。

若要了解详细信息,请参阅 容器网络日志概述

容器网络安全

在当今的动态云环境中,保护容器化应用程序至关重要。 高级容器网络服务提供增强群集网络安全的功能。

基于 FQDN 的筛选

使用由 Cilium DNS 策略支持的 Azure CNI 增强出口控制。 通过使用 FQDN 而不是管理动态 IP 地址来简化配置。

若要了解详细信息,请参阅 基于 FQDN 的筛选概述

第 7 层策略(预览版)

获取对应用程序级流量的精细控制。 根据 HTTP、gRPC 和 kafka 等协议实施策略,通过深度可见性和精细访问控制来保护应用程序。 若要了解详细信息,请参阅 第 7 层策略概述 文档。

定价

重要

高级容器网络服务是一项付费服务。

有关定价的信息,请参阅 高级容器网络服务 - 定价

在群集上设置高级容器网络服务

先决条件

  • 具有活动订阅的 Azure 帐户。 如果还没有该订阅,可以在开始前创建一个免费帐户
  • 本文中的步骤所需的最低 Azure CLI 版本为 2.71.0。 若要查看自己的版本,请运行 az --version。 若要安装或升级,请参阅安装 Azure CLI

安装 aks-preview Azure CLI 扩展

使用 az extension addaz extension update 命令安装或更新 Azure CLI 预览扩展。

Azure CLI 扩展的最低 aks-preview 版本为 14.0.0b6

# 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

注册 AdvancedNetworkingL7PolicyPreview 功能标志

注意

容器网络安全功能仅在由基于 Cilium 的群集提供支持的 Azure CNI 上受支持。

使用az feature register命令注册AdvancedNetworkingL7PolicyPreview功能标志:

az feature register --namespace "Microsoft.ContainerService" --name "AdvancedNetworkingL7PolicyPreview"

使用 az feature show 命令验证注册是否成功。 注册需要几分钟才能完成。

az feature show --namespace "Microsoft.ContainerService" --name "AdvancedNetworkingL7PolicyPreview"

创建资源组

资源组是在其中部署和管理 Azure 资源的逻辑容器。 使用 az group create 命令创建资源组:

# Set environment variables for the resource group name and location. Make sure to replace the placeholders with your own values.
export RESOURCE_GROUP="<resource-group-name>"
export LOCATION="<azure-region>"
# Create a resource group
az group create --name $RESOURCE_GROUP --location $LOCATION

在 AKS 群集中启用和禁用高级容器网络服务

创建具有高级容器网络服务的 AKS 群集

az aks create具有--enable-acns高级容器网络服务标志的命令将创建一个新的 AKS 群集,其中包含所有高级容器网络服务功能,包括容器网络可观测性和容器网络安全

注意

具有 Cilium 数据平面的群集支持 Kubernetes 版本 1.29 及更高版本中的容器网络可观测性和容器网络安全。

--acns-advanced-networkpolicies将参数设置为L7后,将启用 L7 和 FQDN 筛选策略。 如果要仅启用 FQDN 筛选,请将参数设置为 FQDN

若要禁用这两项功能,请完成 “禁用容器网络安全”中所述的步骤。

# Set an environment variable for the AKS cluster name. Make sure you replace the placeholder with your own value.
export CLUSTER_NAME="<aks-cluster-name>"

# Create an AKS cluster
az aks create \
    --name $CLUSTER_NAME \
    --resource-group $RESOURCE_GROUP \
    --network-plugin azure \
    --network-plugin-mode overlay \
    --network-dataplane cilium \
    --kubernetes-version 1.29 \
    --enable-acns \
    --acns-advanced-networkpolicies <L7/FQDN>

在现有群集上启用高级容器网络服务

az aks update命令搭配--enable-acns标志更新现有的 AKS 群集,启用所有高级容器网络服务功能,包括容器网络可观测性容器网络安全

注意

具有 Cilium 数据平面的群集支持 Kubernetes 版本 1.29 及更高版本中的容器网络可观测性和容器网络安全。

如果参数 --acns-advanced-networkpolicies 设置为 L7,则启用第 7 层和 FQDN 筛选策略。 如果要仅启用 FQDN 筛选,请将参数设置为 FQDN

若要禁用这两项功能,请完成 “禁用容器网络安全”中所述的步骤。

az aks update \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --enable-acns \
    --acns-advanced-networkpolicies <L7/FQDN>

禁用高级容器网络服务

--disable-acns 标志禁用现有 AKS 群集上的所有高级容器网络服务功能。 容器网络可观测性和容器网络安全也处于禁用状态。

az aks update \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --disable-acns

禁用高级容器网络服务功能

禁用容器网络可观测性

若要禁用容器网络可观测性功能而不影响其他高级容器网络服务功能,请运行:

az aks update \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --enable-acns \
    --disable-acns-observability 

禁用容器网络安全

若要禁用容器网络安全功能而不影响其他高级容器网络服务功能,请运行:

az aks update \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --enable-acns \
    --disable-acns-security