Envoy Gateway Operator
Содержание
Понимание Envoy GatewayТерминологияАрхитектураСвязанные кастомные ресурсыКастомные ресурсы, связанные сGateway APIКастомные ресурсы, связанные с Envoy GatewayКастомные ресурсы, связанные с операторомУстановка Envoy Gateway через Envoy Gateway OperatorПредварительные требованияОбзорУстановкаШаг 1: Установка Envoy Gateway OperatorШаг 2: Создание дефолтного EnvoyGatewayCtlКонфигурация через YAMLРасширенная конфигурация через EnvoyGatewayCtlМаршрутизация бэкендаПонимание Envoy Gateway
Терминология
Envoy Gateway— это проект с открытым исходным кодом для управления Envoy Proxy в качестве автономного или Kubernetes-базированного шлюза приложений.Gateway API— это официальная коллекция кастомных ресурсов Kubernetes для объявления правил маршрутизации и политик управления трафиком.Envoy Gatewayявляется одной из реализаций спецификацииGateway API.Gatewayилиgatewayapi/gateway— это CR, определённый спецификацией Gateway API.envoy-gateway instance— это экземплярEnvoy Gatewayи все связанные с ним ресурсы, работающие в кластере Kubernetes.envoy-gateway-operator— это helm-operator оболочка вокругEnvoy Gateway, использующаяEnvoyGatewayCtlдля упрощения развертывания и управленияenvoy-gateway instance.EnvoyProxy— это CR, определённый спецификациейEnvoy Gateway, используемыйenvoy-gateway instanceдля управленияenvoy-proxy instance.envoy-proxy instance— это запущенный деплоймент, который обрабатывает входящий трафик.
Архитектура
-
После установки
envoy-gateway-operatorон отслеживаетEnvoyGatewayCtlи разворачиваетenvoy-gateway instanceвместе с дефолтным GatewayClass. -
Когда вы создаёте
Gateway, который ссылается на этот GatewayClass и указывает конфигурациюEnvoyProxy,envoy-gateway instanceразворачиваетenvoy-proxy instanceдля обработки входящего трафика. -
Затем можно создавать ресурсы HTTP, TCP или UDP Route и прикреплять их к этому Gateway для определения политик маршрутизации трафика.
-
Для более детальной настройки можно создавать ресурсы
ClientTrafficPolicyилиBackendTrafficPolicyи прикреплять их к маршрутам для реализации расширенных функций управления трафиком.
Связанные кастомные ресурсы
Envoy Gateway и envoy-gateway-operator вводят дополнительные кастомные ресурсы, которые в сочетании с кастомными ресурсами Gateway API обеспечивают комплексное управление всеми аспектами развертывания шлюза и конфигурациями политик маршрутизации.
Кастомные ресурсы, связанные с Gateway API
Для получения дополнительной информации об этих ресурсах, пожалуйста, обратитесь к разделу Gateway API Concepts.
Кастомные ресурсы, связанные с Envoy Gateway
В рекомендуемой схеме развертывания каждый Gateway использует .spec.infrastructure.parametersRef для ссылки на свой собственный выделенный ресурс EnvoyProxy.
Это отображение один к одному позволяет пользователям управлять конфигурацией развертывания Gateway (реплики, ресурсы, планирование и т.д.) путём изменения соответствующего ресурса EnvoyProxy.
Кастомные ресурсы, связанные с оператором
Рекомендуется развертывать один envoy-gateway instance через EnvoyGatewayCtl на кластер, что достаточно для типичных сценариев использования.
Однако ресурс EnvoyGatewayCtl позволяет развернуть несколько envoy-gateway instance в одном кластере, обеспечивая более гибкое управление и изоляцию для продвинутых сценариев, таких как различные режимы развертывания.
Установка Envoy Gateway через Envoy Gateway Operator
Предварительные требования
Пожалуйста, убедитесь, что вы ознакомились с документацией Понимание Envoy Gateway перед продолжением.
Обзор
envoy-gateway-operator предоставляется для облегчения продвинутого управления развертываниями envoy-gateway instance.
Операционная архитектура функционирует следующим образом:
envoy-gateway-operator непрерывно отслеживает EnvoyGatewayCtl и автоматически создаёт соответствующие развертывания envoy-gateway instance, сервисы и прочее.
Установка
Шаг 1: Установка Envoy Gateway Operator
- Перейдите в
Administrator -> Marketplace -> OperatorHub - Найдите
Alauda build of Envoy Gatewayв категорииNetworkingи нажмитеInstall
Шаг 2: Создание дефолтного EnvoyGatewayCtl
-
Перейдите в
Administrator -> Marketplace -> OperatorHub -
Найдите
Alauda build of Envoy Gatewayв категорииNetworking, откройте его. -
Перейдите на вкладку
All Instances -
Нажмите
Create, затем в появившемся диалоговом окне найдите раздел типа экземпляраEnvoyGatewayCtlи нажмитеCreate -
На странице
Create EnvoyGatewayCtlотображаются следующие параметры конфигурации:Рекомендация: Используйте значения по умолчанию для типичных развертываний. Нажмите Create для продолжения.
Конфигурация через YAML
Вы также можете применить EnvoyGatewayCtl через yaml.
Конфигурация по умолчанию:
Каждый EnvoyGatewayCtl создаст GatewayClass с именем в формате $NS-$NAME, например envoy-gateway-operator-cpaas-default.
Расширенная конфигурация через EnvoyGatewayCtl
EnvoyGatewayCtl по сути является Helm-чартом envoy-gateway, обёрнутым с помощью helm-operator. Его spec соответствует значениям чарта envoy-gateway, что позволяет настраивать различные глобальные функции Envoy Gateway из одного источника.
Для подробной информации о доступных параметрах конфигурации, пожалуйста, обратитесь к envoy-gateway-chart-values.
Настоятельно рекомендуется настраивать envoy-gateway instance только через ресурс EnvoyGatewayCtl. Не изменяйте напрямую сгенерированные ресурсы, такие как ConfigMaps, Deployments, так как эти изменения могут быть потеряны при обновлениях или реконсилиации.
Маршрутизация бэкенда
Например, вы можете настроить маршрутизацию бэкенда в spec EnvoyGatewayCtl: