Envoy Gateway Operator
Содержание
OverviewArchitectureRelated custom resourcesOperator-related custom resourcesGateway API related custom resourcesEnvoy Gateway deploy-related custom resourcesInstall Envoy Gateway via Envoy Gateway OperatorPrerequisitesInstallationStep 1: Install Envoy Gateway OperatorStep 2: Create an EnvoyGatewayCtl with the Recommended Default ValuesConfiguration Via YAMLAdvanced Config Via EnvoyGatewayCtlExample: Enable Backend RoutingNext StepOverview
В этом документе представлен обзор работы envoy-gateway-operator в ACP. Объясняются взаимосвязи между основными кастомными ресурсами и экземплярами времени выполнения, участвующими в Envoy Gateway, включая EnvoyGatewayCtl, GatewayClass, Gateway, EnvoyProxy, экземпляр envoy-gateway и экземпляр envoy-proxy.
envoy-gateway-operator упаковывает исходную Helm chart envoy-gateway как Operator, что позволяет развертывать и управлять экземпляром envoy-gateway декларативно через кастомный ресурс EnvoyGatewayCtl, вместо прямого управления chart или сгенерированными ресурсами.
В ACP 4.3 envoy-gateway-operator использует Helm chart envoy-gateway версии 1.7.0.
Поскольку Operator поддерживается платформой, он также автоматически обновляется вместе с платформой, что снижает операционные затраты на ручное сопровождение установки Envoy Gateway.
В этом документе также описывается, как создать EnvoyGatewayCtl — точку входа для развертывания и управления Envoy Gateway через платформу.
После ознакомления с базовыми концепциями и создания EnvoyGatewayCtl продолжайте настройку Gateway, Route и Policy в указанном порядке, следуя документам из раздела Next Step.
Architecture
Следующий рабочий процесс демонстрирует, как envoy-gateway-operator, EnvoyGatewayCtl, GatewayClass, Gateway и EnvoyProxy взаимодействуют для развертывания и управления Envoy Gateway и его плоскостью данных.
-
После установки
envoy-gateway-operatorи созданияEnvoyGatewayCtlоператор развертывает экземплярenvoy-gatewayи создает соответствующийGatewayClass. ИмяGatewayClassформируется по шаблону<namespace>-<name>. В этом документе используется рекомендуемый пример по умолчанию:cpaas-defaultв пространстве имёнenvoy-gateway-operator, которое также предзаполнено в настройках страницы созданияEnvoyGatewayCtl. В данном случае сгенерированныйGatewayClassбудет называтьсяenvoy-gateway-operator-cpaas-default.Каждый
EnvoyGatewayCtlдолжен иметь уникальное сочетание namespace и имени, поэтому соответствующие именаGatewayClassтакже уникальны. При созданииGatewayвы выбираете подходящийGatewayClass, чтобы определить, какой экземплярenvoy-gatewayбудет его обслуживать. -
При создании
Gateway, ссылающегося на этотGatewayClass, экземплярenvoy-gatewayберет на себя управление этимGateway. ЕслиGatewayссылается наEnvoyProxyчерез.spec.infrastructure.parametersRef, этотEnvoyProxyиспользуется для управления развертыванием соответствующего экземпляраenvoy-proxy. -
Затем экземпляр
envoy-gatewayсоздает и управляет соответствующим экземпляромenvoy-proxy, который служит плоскостью данных и обрабатывает входящий трафик для данногоGateway. -
Вы можете создавать ресурсы
HTTPRoute,TCPRoute,UDPRoute,GRPCRouteилиTLSRouteи прикреплять их кGatewayдля определения правил сопоставления трафика и его маршрутизации к backend-сервисам. Также можно применять политики трафика, такие какClientTrafficPolicyилиBackendTrafficPolicyдля более сложного поведения.
Related custom resources
Ниже перечислены кастомные ресурсы, участвующие в развертывании Envoy Gateway и настройке поведения трафика.
Operator-related custom resources
Рекомендуется для типовых сценариев развертывать один экземпляр envoy-gateway через EnvoyGatewayCtl на кластер.
Для продвинутых сценариев EnvoyGatewayCtl позволяет развернуть несколько экземпляров envoy-gateway в одном кластере для более строгого контроля и изоляции, например, с разными deployment mode.
Gateway API related custom resources
Эти ресурсы описывают семантику маршрутизации шлюза, включая то, как трафик поступает в шлюз, как запросы сопоставляются и направляются на backend, и какие политики применяются при обработке трафика.
Для более подробной информации об этих стандартных ресурсах Gateway API смотрите разделы Gateway API Concepts и Configure GatewayAPI Policy.
Envoy Gateway deploy-related custom resources
Эти ресурсы используются для управления развертыванием Envoy Gateway и его плоскости данных. В этом разделе описан кастомный ресурс, связанный с развертыванием, используемый в данном документе.
В рекомендуемом шаблоне развертывания каждый Gateway ссылается на свой собственный выделенный EnvoyProxy через .spec.infrastructure.parametersRef. При создании Gateway через Web Console с использованием GatewayClass, созданного EnvoyGatewayCtl, консоль автоматически создает сопутствующий ресурс EnvoyProxy с тем же именем и namespace. Такая однозначная связь позволяет управлять конфигурацией развертывания Gateway, например количеством реплик, ресурсами и планированием, обновляя соответствующий ресурс EnvoyProxy.
Install Envoy Gateway via Envoy Gateway Operator
Prerequisites
Пожалуйста, убедитесь, что вы ознакомились с разделами Overview и Architecture перед продолжением.
Installation
Step 1: Install Envoy Gateway Operator
- Перейдите в
Administrator -> Marketplace -> OperatorHub - Найдите
Alauda build of Envoy Gatewayв категорииNetworkingи нажмитеInstall
Step 2: Create an EnvoyGatewayCtl with the Recommended Default Values
Следующие значения по умолчанию соответствуют рекомендуемому примеру, используемому в этом документе.
-
Перейдите в
Administrator -> Marketplace -> OperatorHub -
Найдите
Alauda build of Envoy Gatewayв категорииNetworking, затем откройте страницу с деталями. -
Перейдите на вкладку
All Instances -
Нажмите
Create, в появившемся диалоговом окне найдите раздел Instance Type дляEnvoyGatewayCtlи нажмитеCreate -
На странице
Create EnvoyGatewayCtlотображаются следующие параметры конфигурации:Рекомендация: Используйте значения по умолчанию для типовых развертываний. Нажмите Create для продолжения.
Configuration Via YAML
В качестве альтернативы Web Console вы можете создать EnvoyGatewayCtl, применив YAML.
Конфигурация по умолчанию:
Advanced Config Via EnvoyGatewayCtl
EnvoyGatewayCtl — это кастомный ресурс, используемый для настройки экземпляра envoy-gateway. Его spec напрямую соответствует значениям Helm chart envoy-gateway. При необходимости изменить EnvoyGatewayCtl обращайтесь к документации по значениям upstream chart для доступных опций конфигурации.
Для подробной информации о доступных параметрах конфигурации смотрите envoy-gateway-chart-values.
Настраивайте экземпляр envoy-gateway только через ресурс EnvoyGatewayCtl. Не изменяйте напрямую сгенерированные ресурсы, такие как ConfigMaps, Deployments, так как эти изменения могут быть потеряны при обновлениях или реконсилиации.
Example: Enable Backend Routing
Пример ниже показывает, как включить маршрутизацию на backend в спецификации EnvoyGatewayCtl:
Next Step
После того как оператор Envoy Gateway и EnvoyGatewayCtl готовы, продолжайте выполнение следующих задач в указанном порядке: