Envoy Gateway Operator
目录
OverviewArchitecture相关自定义资源Operator 相关自定义资源Gateway API 相关自定义资源Envoy Gateway 部署相关自定义资源通过 Envoy Gateway Operator 安装 Envoy Gateway前提条件安装步骤 1:安装 Envoy Gateway Operator步骤 2:使用推荐默认值创建 EnvoyGatewayCtl通过 YAML 配置通过 EnvoyGatewayCtl 进行高级配置示例:启用后端路由下一步Overview
本文档概述了 envoy-gateway-operator 在 ACP 中的工作原理,解释了 Envoy Gateway 相关的主要自定义资源和运行时实例之间的关系,包括 EnvoyGatewayCtl、GatewayClass、Gateway、EnvoyProxy、envoy-gateway instance 和 envoy-proxy instance。
envoy-gateway-operator 将上游的 envoy-gateway Helm Chart 封装为 Operator,因此您可以通过 EnvoyGatewayCtl 自定义资源以声明式方式部署和管理 envoy-gateway instance,而无需直接管理 Helm Chart 或渲染后的资源。
在 ACP 4.3 中,envoy-gateway-operator 封装了上游 envoy-gateway Helm Chart 版本 1.7.0。
由于该 Operator 由平台维护,它也会随平台自动升级,帮助减少手动维护 Envoy Gateway 安装的运维负担。
本文档还介绍了如何创建 EnvoyGatewayCtl,这是通过平台部署和管理 Envoy Gateway 的入口。
在理解本文档中的基本概念并创建 EnvoyGatewayCtl 后,请按照 Next Step 中列出的文档顺序继续进行 Gateway、Route 和 Policy 的配置。
Architecture
下图展示了 envoy-gateway-operator、EnvoyGatewayCtl、GatewayClass、Gateway 和 EnvoyProxy 如何协同工作以部署和管理 Envoy Gateway 及其数据平面。
-
安装
envoy-gateway-operator并创建EnvoyGatewayCtl后,operator 会部署一个envoy-gateway instance并创建对应的GatewayClass。GatewayClass名称遵循<namespace>-<name>模式。本文档中使用推荐的默认示例:envoy-gateway-operator命名空间下的cpaas-default,该配置也是 “Create EnvoyGatewayCtl” 页面上的默认预填配置。此时生成的GatewayClass为envoy-gateway-operator-cpaas-default。每个
EnvoyGatewayCtl必须具有唯一的命名空间和名称组合,因此对应的GatewayClass名称也唯一。创建Gateway时,您选择合适的GatewayClass来确定由哪个envoy-gateway instance管理。 -
当您创建引用该
GatewayClass的Gateway时,envoy-gateway instance会接管该Gateway。如果Gateway通过.spec.infrastructure.parametersRef引用了EnvoyProxy,则该EnvoyProxy用于控制底层envoy-proxy instance的部署方式。 -
envoy-gateway instance随后会配置并管理对应的envoy-proxy instance,该实例作为数据平面,处理该Gateway的入站流量。 -
您可以创建
HTTPRoute、TCPRoute、UDPRoute、GRPCRoute或TLSRoute资源并将其附加到Gateway,以定义流量的匹配和转发规则。还可以附加如ClientTrafficPolicy或BackendTrafficPolicy等流量策略,实现更高级的行为。
相关自定义资源
以下自定义资源涉及 Envoy Gateway 的部署和流量行为配置。
Operator 相关自定义资源
建议在典型用例中,每个集群通过 EnvoyGatewayCtl 部署单个 envoy-gateway instance。
对于高级场景,EnvoyGatewayCtl 也允许在同一集群内部署多个 envoy-gateway instance,以实现更强的控制和隔离,例如不同的部署模式。
Gateway API 相关自定义资源
这些资源描述了网关的路由语义,包括流量如何进入网关、请求如何匹配并转发到后端,以及流量处理过程中应用的策略。
有关这些标准 Gateway API 资源的更多详细信息,请参阅 Gateway API Concepts 和 Configure GatewayAPI Policy。
Envoy Gateway 部署相关自定义资源
这些资源用于控制 Envoy Gateway 及其数据平面的部署。此部分重点介绍本文档使用的部署相关自定义资源。
在推荐的部署模式中,每个 Gateway 通过 .spec.infrastructure.parametersRef 引用其专用的 EnvoyProxy。当您通过 Web Console 使用 EnvoyGatewayCtl 创建的 GatewayClass 创建 Gateway 时,控制台会自动创建一个同名同命名空间的配套 EnvoyProxy 资源。此一对一映射允许您通过更新对应的 EnvoyProxy 资源来控制 Gateway 的部署配置,如副本数、资源和调度。
通过 Envoy Gateway Operator 安装 Envoy Gateway
前提条件
请确保在继续之前已阅读“Overview”和“Architecture”部分。
安装
步骤 1:安装 Envoy Gateway Operator
- 进入
Administrator -> Marketplace -> OperatorHub - 在
Networking分类下找到Alauda build of Envoy Gateway,点击Install
步骤 2:使用推荐默认值创建 EnvoyGatewayCtl
以下默认值与本文档中使用的推荐示例一致。
-
进入
Administrator -> Marketplace -> OperatorHub -
在
Networking分类下找到Alauda build of Envoy Gateway,点击进入详情页。 -
切换到
All Instances标签页 -
点击
Create,在弹出的对话框中找到EnvoyGatewayCtl实例类型部分,点击Create -
Create EnvoyGatewayCtl页面显示以下配置选项:建议:典型部署使用默认值。点击 Create 继续。
通过 YAML 配置
除了 Web Console,您也可以通过应用 YAML 来创建 EnvoyGatewayCtl。
默认配置:
通过 EnvoyGatewayCtl 进行高级配置
EnvoyGatewayCtl 是用于配置 envoy-gateway instance 的自定义资源,其 spec 直接映射到上游 envoy-gateway Helm Chart 的值。当您需要修改 EnvoyGatewayCtl 时,请参考上游 Chart 的值文档了解可用的配置选项。
有关可用配置选项的详细信息,请参阅 envoy-gateway-chart-values。
您应仅通过 EnvoyGatewayCtl 资源配置 envoy-gateway instance。请勿直接修改渲染后的资源(如 ConfigMaps、Deployments),因为这些更改可能在升级或调和过程中丢失。
示例:启用后端路由
以下示例展示了如何在 EnvoyGatewayCtl spec 中启用后端路由:
下一步
在 Envoy Gateway operator 和 EnvoyGatewayCtl 准备就绪后,请按顺序继续完成以下任务: