Alauda Container Platform Gateway API Controller
目录
概述架构相关自定义资源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。
有关各 ACP 版本安装的 Gateway API CRD 版本,请参阅Gateway API CRD 版本。
由于 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 资源,以加强控制和隔离,例如采用不同的部署模式。
Gateway API 相关的自定义资源
这些资源描述网关的路由语义,包括流量如何进入网关、请求如何匹配并转发到后端,以及流量处理期间应用哪些策略。
有关这些标准 Gateway API 资源的更多详情,请参阅 Gateway API 概念 和 配置 GatewayAPI Policy。
Envoy Gateway 部署相关的自定义资源
这些资源控制 Envoy Gateway 及其数据平面的部署。使用以下自定义资源进行部署相关配置。
如需限制命名空间中 EnvoyProxy 资源声明的 CPU 和内存请求总量,请参阅配置 EnvoyProxy 资源配额。
在推荐的部署模式中,每个 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 Container Platform Gateway API Controller,然后点击Install
步骤 2:使用推荐的默认值创建 EnvoyGatewayCtl
以下默认值与本工作流中使用的推荐示例一致。
-
导航至
Administrator -> Marketplace -> OperatorHub -
在
Networking类别下找到Alauda Container Platform Gateway API Controller,然后点击它打开详情页。 -
导航至
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 就绪后,请按顺序继续执行以下任务:
商标声明
Envoy® 是 The Linux Foundation 的注册商标。
Alauda 是独立供应商。本产品与 The Linux Foundation 无关联,也未获得其认可或赞助。所有商标均为其各自所有者的财产,在此仅用于识别目的。