Kubernetes 閘道 API 是 Kubernetes 叢集上流量管理的規格。 該規範強化了 Ingress API,後者缺乏統一且與提供者無關的進階流量路由方法。
適用於 Azure Kubernetes Service (AKS) 的受控閘道 API 安裝會安裝 Kubernetes 閘道 API 的自訂資源定義 (CRD)。 你可以獨立安裝這些 CRD,而不依賴任何特定的閘道 API 實作。
備註
受控 Gateway API 安裝只會安裝及管理 Gateway API CRD。 你可以將這些 CRD 與你自己的 Gateway API 實作一起使用,但 AKS 支援僅適用於你使用 Managed Gateway API 安裝並搭配支援的 AKS 外掛或擴充套件來實作 Gateway API 時。 AKS 不支援自備 Proxy 或其他自我管理的 Gateway API 實作。
先決條件
如果您的叢集已安裝了 Gateway API CRD,您必須符合以下要求:
- 您的叢集上只能安裝
standard個通道 CRD。Experimental個通道 CRD 就超出允許範圍了,您必須先解除安裝才能啟用受控閘道 API。 - Gateway API 套件版本必須與你叢集的 Kubernetes 版本相容。 欲了解更多資訊,請參閱「與 Gateway API 套件版本相關的支援 Kubernetes 版本」章節。
- 您的叢集上只能安裝
你也可以選擇部署實作閘道 API 的 AKS 外掛或擴充套件,例如 Istio 外掛。 如果您使用 Istio 增益集,您必須使用次要修訂版本
asm-1-26或更新版本,以確保與受控 Gateway API 安裝相容。 要部署 Istio 外掛,請參見 Deploy Istio 基礎服務網狀外掛 for Azure Kubernetes Service(AKS)。
更新 Azure CLI 版本
您必須使用 azure-cli 版本 2.86.0 或更高版本。 執行 az --version 查找 azure-cli 版本,然後執行 az upgrade 來升級。
受支援的 Kubernetes 版本,適用於 Gateway API 套件版本
下表概述 standard 通道中每個閘道 API 搭售方案版本對於 AKS 叢集所支援的 Kubernetes 版本:
| Gateway API 套件版本 | 支援的 Kubernetes 版本 |
|---|---|
| v1.2.1 | v1.26.0 - v1.33.x |
| 1.3.0版 | v1.34.x |
| v1.4.1 | v1.35.x |
| v1.5.1 | v1.36.x |
| 1.6.1 版 | v1.37.0+ |
備註
如果你在安裝 Managed Gateway API CRD 後,將 AKS 叢集升級到新的次要版本,CRD 會自動升級到該 Kubernetes 版本中支援的新 Gateway API 套件版本。 例如,如果你從 AKS v1.33.0 升級到 v1.34.0,而之前已安裝 Managed Gateway API 以使用捆綁包版本 v1.2.1,那麼,CRD 將自動升級到捆綁包版本 v1.3.0。
建立一個新的 AKS 叢集,安裝 Managed Gateway API CRD
使用
az aks create命令 (附帶--enable-gateway-api旗標),建立一個已安裝受控閘道 API CRD 的新 AKS 叢集。 你也可以可選地在同一命令中啟用支援的附加元件,例如 Istio 服務網格附加元件。 以下範例命令建立新的 AKS 叢集,其中安裝了受控閘道 API,並啟用了 Istio 服務網格附加元件:az aks create --resource-group myResourceGroup --name myAKSCluster --enable-gateway-api --enable-azure-service-mesh
在現有 AKS 叢集上安裝受控閘道 API CRD
使用
az aks update命令和--enable-gateway-api旗標,在現有叢集上安裝受控 Gateway API CRD。az aks update --resource-group myResourceGroup --name myAKSCluster --enable-gateway-api
驗證受控閘道 API CRD 安裝
請使用以下
kubectl get crds指令查看安裝在叢集上的 CRD:kubectl get crds | grep "gateway.networking.k8s.io"輸出應該會顯示已安裝的 CRD,這些 CRD 是 Kubernetes Gateway API 規範的一部分。 例如:
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請用以下指令確認 CRD 有預期的註解,且套件版本是否符合
kubectl get crds:kubectl get crd gateways.gateway.networking.k8s.io -ojsonpath={.metadata.annotations} | jq輸出應該會顯示預期的註解,包括具有叢集的 Kubernetes 版本預期配套版本的
gateway.networking.k8s.io/bundle-version註釋。 舉例來說,如果你的叢集運行的是 Kubernetesv1.33.0,預期的套裝版本是v1.2.1,輸出應該會像以下一樣:{ "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" }
在 AKS 叢集上移除管理閘道 API CRD
使用
az aks update帶有--disable-gateway-api旗標的指令在現有叢集上卸載 Managed Gateway API CRD。az aks update --resource-group myResourceGroup --name myAKSCluster --disable-gateway-api