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

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

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

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

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

高级容器网络服务有两大功能:

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

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

容器网络可观测性

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

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

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

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

容器网络指标

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

若要了解详细信息,请参阅 “指标概述 ”文档。

容器网络日志

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

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

容器网络安全

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

基于 FQDN 的筛选

使用由 Cilium 基于 DNS 的策略提供支持的 Azure CNI 增强出口控制。 使用域名(FQDN)而不是管理动态 IP 地址来简化配置。 若要了解详细信息,请参阅 基于 FQDN 的筛选概述 文档。

第 7 层 (L7) 策略 (预览版)

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

定价

重要

高级容器网络服务是一项付费服务。 有关定价的详细信息,请参阅高级容器网络服务 - 定价

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

先决条件

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

安装 aks-preview Azure CLI 扩展

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

aks-preview Azure CLI 扩展的最低版本为 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 上受支持。

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

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 群集,它具有所有高级容器网络服务功能。 这些功能包括:

  • 容器网络可观测性:提供对您的网络流量的深入见解。 若要了解详细信息,请访问容器网络可观测性

  • 容器网络安全:提供 FQDN 筛选等安全功能。 若要了解详细信息,请访问容器网络安全

注意

从 Kubernetes 版本 1.29 开始,具有 Cilium 数据平面的群集支持容器网络可观测性和容器网络安全。

当参数 --acns-advanced-networkpolicies 设置为“L7”时,将启用 L7 和 FQDN 筛选策略。 如果只想启用 FQDN 筛选,请将参数设置为“FQDN”。 若要禁用这两种功能,可以按照 “禁用容器网络安全”中提供的说明进行作。

# Set an environment variable for the AKS cluster name. Make sure to 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 群集。

注意

从 Kubernetes 版本 1.29 开始,具有 Cilium 数据平面的群集支持容器网络可观测性和容器网络安全。

当参数 --acns-advanced-networkpolicies 设置为“L7”时,将启用 L7 和 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

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

禁用容器网络可观测性

若要在不影响其他高级容器网络服务功能的情况下禁用容器网络可观测性功能,请使用 --enable-acns--disable-acns-observability

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

禁用容器网络安全

若要在不影响其他高级容器网络服务功能的情况下禁用容器网络安全功能,请使用 --enable-acns--disable-acns-security

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

后续步骤