Поделиться через


Установка CRD API управляемого шлюза на Azure Kubernetes Service (AKS) (предварительный просмотр)

API шлюза Kubernetes — это спецификация для управления трафиком в кластерах Kubernetes. Спецификация улучшает Ingress API, которому не хватает единого и независимого от поставщика подхода для усложненной маршрутизации трафика.

Установка API управляемого шлюза для службы Azure Kubernetes (AKS) включает установку пользовательских определений ресурсов (CRD) для API шлюза Kubernetes. При установке API управляемого шлюза можно использовать функции API шлюза в полностью поддерживаемом режиме в AKS.

Предпосылки

Установка или обновление aks-preview расширения

Это важно

Предварительные версии функций AKS доступны на условиях самообслуживания и добровольного выбора. Предварительные версии предоставляются "как есть" и "при наличии". На них не распространяются соглашения об уровне обслуживания и ограниченная гарантия. Предварительные версии AKS сопровождаются частичной поддержкой клиентов на основе принципа лучших усилий. Как таковые, эти функции не предназначены для использования в производстве. Для получения дополнительной информации ознакомьтесь со следующими статьями поддержки:

  • aks-preview Установите расширение или обновите его до новейшей версии с помощью команды az extension add и команды az extension update. Если вы используете Azure CLI. Необходимо использовать версию aks-preview и более позднюю 19.0.0b4.

    # Install the aks-preview extension
    az extension add --name aks-preview
    
    # Update the aks-preview extension to the latest version
    az extension update --name aks-preview
    

Зарегистрируйте флаг предварительной версии API управляемого шлюза

  • Зарегистрируйте флаг функции ManagedGatewayAPIPreview с помощью команды az feature register.

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

Поддерживаемые версии Kubernetes для версий пакета API шлюза

В следующей таблице приведены поддерживаемые версии Kubernetes для кластера AKS для каждой версии пакета API шлюза standard для канала:

Версия пакета API шлюза Поддерживаемые версии Kubernetes
v1.2.1 v1.26.0 — v1.33.x
v1.3.0 v1.34.x
v1.4.1 v1.35.0+

Замечание

Если вы обновляете кластер AKS до новой минорной версии после установки CRD управления шлюзом API, CRD автоматически обновляются до новой поддерживаемой версии пакета API шлюза для этой версии Kubernetes. Например, при обновлении с AKS v1.33.0 до v1.34.0 и ранее установленного управляемого шлюза API для версии пакета v1.2.1, CRDs автоматически обновляются до версии пакета v1.3.0.

Создайте новый кластер AKS с установленными CRD API управляемого шлюза

  • Создайте новый кластер AKS с установленными CRD API управляемого шлюза с помощью команды az aks create с флагом --enable-gateway-api. Вы также можете включить поддерживаемое дополнение, например, сервисную mesh-сетку Istio, в той же команде. Следующая команда создает новый кластер AKS с установкой API шлюза с управляемой поддержкой и надстройкой службы mesh Istio.

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

Установка CRD API для управляемого шлюза в существующем кластере AKS

  • Установите CRD API управляемого шлюза на существующий кластер с включенной поддержкой совместимой реализации с помощью команды az aks update с флагом --enable-gateway-api.

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

Проверка установки CRD API управляемого шлюза

  1. Просмотрите все CRD, установленные в вашем кластере, с помощью следующей kubectl get crds команды:

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

    Выходные данные должны отображать установленные CRD, которые являются частью спецификации API шлюза Kubernetes. Рассмотрим пример.

    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. Убедитесь, что CRD имеют ожидаемые аннотации, а версия пакета соответствует ожидаемой версии Kubernetes для вашего кластера, используя следующую kubectl get crds команду:

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

    Выходные данные должны отображать ожидаемые аннотации, включая gateway.networking.k8s.io/bundle-version аннотацию с ожидаемой версией пакета, соответствующей версии Kubernetes вашего кластера. Например, если кластер работает под управлением Kubernetes v1.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"
    }
    

Удаление CRD для API управляемого шлюза в кластере AKS

  • Удалите CRD (определения пользовательских ресурсов) API управляемого шлюза в существующем кластере, используя команду az aks update с флагом --disable-gateway-api.

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