Envoy Gateway Operator
目录
概述架构相关自定义资源与 Operator 相关的自定义资源与Gateway API 相关的自定义资源Envoy Gateway 部署相关的自定义资源通过 Envoy Gateway Operator 安装 Envoy Gateway前提条件安装步骤 1:安装 Envoy Gateway Operator步骤 2:使用推荐默认值创建 EnvoyGatewayCtl通过 YAML 进行配置通过 EnvoyGatewayCtl 进行高级配置示例:启用后端路由下一步概述
使用 envoy-gateway-operator 通过平台托管资源来部署和管理 Envoy Gateway。主要的自定义资源和运行时实例包括 EnvoyGatewayCtl、GatewayClass、Gateway、EnvoyProxy、envoy-gateway instance 和 envoy-proxy instance。
envoy-gateway-operator 会将上游 envoy-gateway Helm Chart 打包为一个 Operator,因此你可以通过 EnvoyGatewayCtl 自定义资源以声明式方式部署和管理 envoy-gateway instance,而无需直接管理该 Chart 或其渲染后的资源。
在 ACP 4.3 中,envoy-gateway-operator 打包的上游 envoy-gateway Helm Chart 版本为 1.7.0。
由于该 Operator 由平台维护,因此也会随着平台一起自动升级,这有助于减少手动维护 Envoy Gateway 安装所带来的运维开销。
创建 EnvoyGatewayCtl 作为通过平台部署和管理 Envoy Gateway 的入口点。
在理解这些概念并创建 EnvoyGatewayCtl 之后,请按照 下一步 中列出的顺序继续进行 Gateway、Route 和 Policy 配置。
架构
以下工作流展示了 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,以定义流量如何匹配并转发到后端 Services。你还可以附加诸如ClientTrafficPolicy或BackendTrafficPolicy等流量策略,以实现更高级的行为。
相关自定义资源
以下自定义资源参与 Envoy Gateway 的部署以及流量行为的配置。
与 Operator 相关的自定义资源
对于典型使用场景,我们建议每个集群通过 EnvoyGatewayCtl 部署一个 envoy-gateway instance。
对于高级场景,EnvoyGatewayCtl 还允许你在同一集群中部署多个 envoy-gateway instance 资源,以获得更强的控制力和隔离性,例如不同的 deployment mode。
与 Gateway API 相关的自定义资源
这些资源描述了 gateway 的路由语义,包括流量如何进入 gateway、请求如何匹配并转发到后端,以及在流量处理过程中应用哪些策略。
有关这些标准 Gateway API 资源的更多详细信息,请参阅 Gateway API 概念 和 配置 GatewayAPI Policy。
Envoy Gateway 部署相关的自定义资源
这些资源控制 Envoy Gateway 及其数据平面的部署方式。请使用以下自定义资源进行部署相关配置。
在推荐的部署模式中,每个 Gateway 都通过 .spec.infrastructure.parametersRef 引用其各自专用的 EnvoyProxy。当你在 Web Console 中使用由 EnvoyGatewayCtl 创建的 GatewayClass 创建 Gateway 时,控制台会自动创建一个同名、同命名空间的配套 EnvoyProxy 资源。这种一对一映射让你可以通过更新对应的 EnvoyProxy 资源来控制 Gateway 的部署配置,例如副本数、资源和调度。
通过 Envoy Gateway Operator 安装 Envoy Gateway
前提条件
在继续之前,请先阅读上文的概念和架构。
安装
步骤 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 的 values。当你需要修改 EnvoyGatewayCtl 时,请参考上游 Chart values 文档中的可用配置选项。
有关可用配置选项的详细信息,请参阅 envoy-gateway-chart-values。
你应仅通过 EnvoyGatewayCtl 资源来配置 envoy-gateway instance。不要直接修改诸如 ConfigMaps、Deployments 等渲染后的资源,因为这些更改可能会在升级或 reconciliation 期间丢失。
示例:启用后端路由
以下示例展示了如何在 EnvoyGatewayCtl 的 spec 中启用后端路由:
下一步
在 Envoy Gateway operator 和 EnvoyGatewayCtl 就绪后,请按以下顺序继续执行任务: