Instalowanie definicji zasobów niestandardowych (CRD) zarządzanego interfejsu API bramy w usłudze Azure Kubernetes Service (AKS)

API Gateway Kubernetes to specyfikacja zarządzania ruchem w klastrach Kubernetes. Specyfikacja rozszerza Ingress API, który nie ma ujednoliconego i niezależnego od dostawcy podejścia do zaawansowanego routingu ruchu.

Instalacja interfejsu API usługi Managed Gateway dla usługi Azure Kubernetes Service (AKS) instaluje niestandardowe definicje zasobów (CRD) dla interfejsu API bramy Kubernetes. Można zainstalować te CRD niezależnie od konkretnej implementacji Gateway API.

Uwaga / Notatka

Instalacja Managed Gateway API instaluje tylko CRD Gateway API i nimi zarządza. Możesz używać tych CRD z własną implementacją Gateway API, ale obsługa AKS dotyczy tylko wtedy, gdy korzystasz z instalacji Managed Gateway API z obsługiwanym dodatkiem lub rozszerzeniem AKS, które implementuje Gateway API. Serwery proxy BYO lub samodzielnie zarządzane implementacje interfejsu API bramy nie są obsługiwane przez usługę AKS.

Wymagania wstępne

  • Jeśli masz już wdrożenie Gateway API CRD w swoim klastrze, musisz spełnić następujące wymagania:

    • W klastrze można instalować tylko standard kanały CRD. Experimental Identyfikatory CRD kanału są niedozwolone i należy je odinstalować przed włączeniem interfejsu API bramy zarządzanej.
    • Wersja pakietu interfejsu API bramy musi być zgodna z wersją rozwiązania Kubernetes klastra. Aby uzyskać więcej informacji, zobacz sekcję Obsługiwane wersje platformy Kubernetes dla wersji pakietu interfejsu API bramy .
  • Opcjonalnie można wdrożyć dodatek lub rozszerzenie usługi AKS, które implementuje interfejs API bramy, na przykład dodatek Istio. Jeśli używasz dodatku Istio, musisz być w wersji asm-1-26 pomocniczej lub nowszej, aby zapewnić zgodność z instalacją interfejsu API usługi Managed Gateway. Aby wdrożyć dodatek Istio, sprawdź Wdrażanie dodatku opartego na technologii Istio dla usługi Azure Kubernetes Service (AKS).

Aktualizowanie wersji interfejsu wiersza polecenia platformy Azure

Musisz użyć wersji azure-cli2.86.0 lub nowszej. Uruchom polecenie az --version , aby znaleźć swoją azure-cli wersję i uruchomić az upgrade polecenie , aby uaktualnić.

Obsługiwane wersje Kubernetes dla wersji pakietu interfejsu API Gateway

W poniższej tabeli przedstawiono obsługiwane wersje Kubernetes dla klastra AKS dla każdej wersji pakietu Gateway API dla kanału standard.

Pakiet interfejsu API Gateway - wersja Obsługiwane wersje platformy Kubernetes
v1.2.1 wersja 1.26.0 — wersja 1.33.x
Wersja 1.3.0 wersja 1.34.x
wersja 1.4.1 wersja 1.35.x
v1.5.1 Wersja 1.36.0 lub nowsza

Uwaga / Notatka

Jeśli zaktualizujesz swój klaster AKS do nowej, mniejszej wersji po zainstalowaniu CRD interfejsu API zarządzanej bramy, pliki CRD zostaną automatycznie zaktualizowane do nowej obsługiwanej wersji pakietu interfejsu API bramy dla tej wersji Kubernetes. Jeśli na przykład uaktualnisz usługę AKS v1.33.0 do usługi v1.34.0, a wcześniej zainstalowano interfejs API zarządzanej bramy dla wersji pakietu v1.2.1, pliki CRD zostaną automatycznie uaktualnione do wersji pakietu v1.3.0.

Utwórz nowy klaster AKS z zainstalowanymi CRD Managed Gateway API

  • Utwórz nowy klaster AKS z zainstalowanymi CRD API bramy zarządzanej, używając polecenia az aks create z flagą --enable-gateway-api. Opcjonalnie możesz również włączyć obsługiwany dodatek, taki jak dodatek siatki usługi Istio, w tym samym poleceniu. Następujące przykładowe polecenie tworzy nowy klaster usługi AKS z instalacją interfejsu API bramy zarządzanej i włączonym dodatkiem usługi Istio Service Mesh:

    az aks create --resource-group myResourceGroup --name myAKSCluster --enable-gateway-api --enable-azure-service-mesh
    

Instalowanie CRD interfejsu API Zarządzanej Bramy w istniejącym klastrze AKS

  • Zainstaluj zasoby CRD interfejsu API zarządzanej bramy w istniejącym klastrze, używając polecenia az aks update z flagą --enable-gateway-api.

    az aks update --resource-group myResourceGroup --name myAKSCluster --enable-gateway-api
    

Weryfikowanie instalacji CRD dla interfejsu API zarządzanej bramy

  1. Wyświetl dyski CRD zainstalowane w klastrze przy użyciu następującego kubectl get crds polecenia:

    kubectl get crds | grep "gateway.networking.k8s.io"
    

    Dane wyjściowe powinny zawierać zainstalowane identyfikatory CRD, które są częścią specyfikacji interfejsu API usługi Kubernetes Gateway. Przykład:

    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
    
  2. Sprawdź, czy identyfikatory CRD mają oczekiwane adnotacje, a wersja pakietu jest zgodna z oczekiwaną wersją rozwiązania Kubernetes dla klastra przy użyciu następującego kubectl get crds polecenia:

    kubectl get crd gateways.gateway.networking.k8s.io -ojsonpath={.metadata.annotations} | jq
    

    Wynik powinien pokazywać oczekiwane adnotacje, w tym adnotację gateway.networking.k8s.io/bundle-version z oczekiwaną wersją pakietu dla wersji Kubernetes klastra. Jeśli na przykład w klastrze jest uruchomiona platforma Kubernetes v1.33.0, oczekiwana wersja pakietu to v1.2.1, a dane wyjściowe powinny być podobne do następujących:

    {
    "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"
    }
    

Odinstalowywanie identyfikatorów CRD interfejsu API bramy zarządzanej w klastrze usługi AKS

  • Odinstaluj CRD Zarządzane Gateway API na istniejącym klastrze za pomocą polecenia az aks update z flagą --disable-gateway-api.

    az aks update --resource-group myResourceGroup --name myAKSCluster --disable-gateway-api
    
  • Konfigurowanie ingressu dla dodatku Istio service mesh przy użyciu API bramy Kubernetes