Azure CNI Overlay Azure Kubernetes 服务 (AKS) 群集中的 Pod CIDR 扩展

只能在仅包含 Linux 节点的 Azure CNI Overlay AKS 群集上扩展 Pod CIDR 空间。 该作使用 az aks update 命令并允许扩展,而无需重新创建 AKS 群集。

重要

AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:

要求和参数

要求/参数 支持的版本/值 Description
功能标志 EnableAzureCNIOverlayPodCIDRExpansion 必须在订阅中注册此功能标志,才能在 Azure CNI 覆盖 AKS 群集中启用 Pod CIDR 扩展。
Azure CLI 版本 2.48.0 或更高版本 Azure CLI 版本必须是 2.48.0 或更高版本才能支持 Pod CIDR 扩展功能。
Kubernetes 版本 1.33 Pod CIDR 扩展仅在运行 Kubernetes 版本 1.33 的 AKS 群集上受支持。
节点操作系统 (OS) Linux Pod CIDR 扩展仅在具有 Linux 节点的 Azure CNI 覆盖 AKS 群集上受支持。
网络模式 Azure CNI 覆盖 Pod CIDR 扩展仅在使用 Azure CNI Overlay 网络的 AKS 群集上受支持。
原始 Pod CIDR 示例 10.244.0.0/18 这是启动 Pod CIDR 块的示例。
扩展的 Pod CIDR 示例 10.244.0.0/16 这是目标 Pod CIDR 扩展块的示例。

局限性

  • 不支持 Windows 节点和混合节点方案。
  • 不支持收缩或更改对 Pod CIDR 的设置。
  • 不支持添加不连续的 Pod CIDR。 新的 Pod CIDR 必须是一个更大的超集,其中包含完整的原始范围。
  • 不支持 IPv6 Pod CIDR 扩展。
  • 不支持通过 --pod-cidrs 更改多个 Pod CIDR 块。
  • 如果在扩展操作期间 Azure 可用性区域 关闭,则新节点可能显示为 未就绪。 在可用性区域启动后,可以期望这些节点进行协调。

先决条件

  • 一份 Azure 订阅。 如果没有 Azure 订阅,可在开始前创建一个试用帐户
  • 确保满足“ 要求和参数 ”部分中列出的要求。

注册 EnableAzureCNIOverlayPodCIDRExpansion 功能标志

  1. 使用 EnableAzureCNIOverlayPodCIDRExpansion 命令注册 az feature register 功能标志。

    az feature register --namespace Microsoft.ContainerService --name EnableAzureCNIOverlayPodCIDRExpansion
    
  2. 使用 az feature show 命令验证注册是否成功。 只需几分钟时间即可完成注册。

    az feature show --namespace "Microsoft.ContainerService" --name "EnableAzureCNIOverlayPodCIDRExpansion"
    
  3. 在功能显示Registered后,使用Microsoft.ContainerService命令刷新az provider register资源提供程序的注册。

    az provider register --namespace Microsoft.ContainerService
    

更新 Azure CNI Overlay AKS 群集以扩展 Pod CIDR 范围

  1. 从 pod CIDR 块 10.244.0.0/18开始,可以使用命令扩展 Pod CIDR 空间 az aks update 。 例如:

    az aks update \
        --name $CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP \
        --pod-cidr 10.244.0.0/16
    

    注释

    尽管更新作可能成功完成并在网络配置文件中显示新的 Pod CIDR,但请确保通过 NodeNetworkConfig (nnc) 验证新的群集状态。

  2. 使用(nnc)命令来检查并验证升级操作的状态。 在输出中,所有节点池都应与新的 Pod CIDR 块(例如) 10.244.0.0/16匹配。

    kubectl get nnc -A -o jsonpath='{range .items[*]}{.metadata.name}{" "}{.status.networkContainers[0].subnetAddressSpace}{"\n"}{end}'
    

若要详细了解 AKS 上的 Azure CNI 覆盖网络,请参阅以下文章: