Compartir a través de

安装托管网关 API CRD (预览版)

重要

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

Kubernetes Gateway API 是 Kubernetes 群集流量管理的规范。 它被设计为对Ingress API的继任者和改进,因为Ingress API缺乏一种统一且提供商无关的高级流量路由方法。

Azure Kubernetes 服务 (AKS) 的网关 API 托管安装会为 Kubernetes 网关 API 安装自定义资源定义(CRDs)。 通过托管网关 API 安装,可以在 AKS 上完全受支持的模式下使用网关 API 功能。 但是,还必须使用实现网关 API 的 AKS 加载项或扩展,例如 Istio 加载项

网关 API 捆绑版本和 AKS Kubernetes 版本映射

下表针对 standard 通道的每个网关 API 捆绑包版本,你的 AKS 群集所支持的 Kubernetes 版本。 Experimental 通道 CRD 不被允许,必须在启用托管网关 API 的安装之前将其卸载。

网关 API 组件版本 支持的 Kubernetes 版本
v1.2.1 v1.26.0 - v1.33.x
v1.3.0 v1.34.0+

注释

如果在安装托管网关 API CRD 后将 AKS 群集升级到新的次要版本,则 CRD 将自动升级到该 Kubernetes 版本的新支持的网关 API 捆绑版本。 例如,如果您从 AKS v1.33.0 升级到 v1.34.0,并且之前安装了捆绑包版本 v1.2.1 的托管网关 API,则 CRD 会自动升级为捆绑包版本 v1.3.0

先决条件

确保群集上至少安装了并启用网关 API 的以下实现之一:

  • Istio 加载项 次级版本 asm-1-26 及更高版本。

    • 如果你的群集上现在已安装网关 API CRD,那么你只需要安装 standard 通道 CRD,并且网关 API 捆绑包版本必须与群集的 Kubernetes 版本兼容。 请参阅表,以了解与每个 Kubernetes 版本关联的捆绑版本。
  • 请使用命令安装aks-preview扩展,如果您使用的是az extension add Azure CLI。 必须使用 aks-preview 版本 19.0.0b4 或更高版本。

    az extension add --name aks-preview
    

    使用 az extension update 以下命令更新到最新版本的扩展:

    az extension update --name aks-preview
    

管理托管网关 API 预览功能

您可以通过使用 ManagedGatewayAPIPreview 命令来注册 az feature register 特性标志。

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

然后,可以安装或卸载托管网关 API CRD。

  1. 可以运行以下命令 az aks create ,在新创建的群集上安装托管网关 API CRD。 必须同时启用网关 API 的实现,以便于启用托管 CRD 安装程序。

    # Example: enable the managed Gateway API installation with the Istio service mesh add-on
    az aks create -g $RESOURCE_GROUP -n $CLUSTER_NAME --enable-gateway-api --enable-azure-service-mesh
    
  2. 若要在启用了受支持的实现的现有群集上安装托管网关 API CRD,请运行以下命令:

    az aks update -g $RESOURCE_GROUP -n $CLUSTER_NAME --enable-gateway-api
    
  3. 若要查看群集上安装的 CRD,请运行以下命令:

    kubectl get crds | grep "gateway.networking.k8s.io"
    
    gatewayclasses.gateway.networking.k8s.io                           2025-08-29T17:52:36Z
    gateways.gateway.networking.k8s.io                                 2025-08-29T17:52:36Z
    grpcroutes.gateway.networking.k8s.io                               2025-08-29T17:52:36Z
    httproutes.gateway.networking.k8s.io                               2025-08-29T17:52:37Z
    referencegrants.gateway.networking.k8s.io                          2025-08-29T17:52:37Z
    
  4. 验证 CRD 是否具有预期的批注,并且捆绑版本是否与群集 的预期 Kubernetes 版本 匹配。

    kubectl get crd gateways.gateway.networking.k8s.io -ojsonpath={.metadata.annotations} | jq
    
    {
      "api-approved.kubernetes.io": "https://github.com/kubernetes-sigs/gateway-api/pull/3328",
      "app.kubernetes.io/managed-by": "aks",
      "app.kubernetes.io/part-of": <hash>,
      "gateway.networking.k8s.io/bundle-version": "v1.2.1",
      "gateway.networking.k8s.io/channel": "standard"
    }
    

后续步骤