Envoy Gateway Operator
目录
理解 Envoy Gateway术语架构相关自定义资源Gateway API 相关自定义资源Envoy Gateway 相关自定义资源Operator 相关自定义资源通过 Envoy Gateway Operator 安装 Envoy Gateway前提条件概述安装步骤 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是 Gateway API 规范定义的 CR。envoy-gateway instance指在 Kubernetes 集群中运行的Envoy Gateway实例及其所有相关资源。envoy-gateway-operator是基于 helm-operator 封装的Envoy Gateway,使用EnvoyGatewayCtl简化envoy-gateway instance的部署和管理。EnvoyProxy是Envoy Gateway规范定义的 CR,由envoy-gateway instance用于管理envoy-proxy instance。envoy-proxy instance是处理入站流量的运行中的部署。
架构
-
安装
envoy-gateway-operator后,它会监控EnvoyGatewayCtl并部署一个envoy-gateway instance及一个默认的 GatewayClass。 -
当你创建一个引用该 GatewayClass 并指定
EnvoyProxy配置的Gateway时,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 资源。
这种一对一映射允许用户通过修改对应的 EnvoyProxy 资源来控制 Gateway 的部署配置(副本数、资源、调度等)。
Operator 相关自定义资源
建议每个集群通过 EnvoyGatewayCtl 部署单个 envoy-gateway instance,这对于典型用例已足够。
不过,EnvoyGatewayCtl 资源允许在同一集群内部署多个 envoy-gateway instance,以支持更灵活的控制和隔离,适用于不同的部署模式等高级场景。
通过 Envoy Gateway Operator 安装 Envoy Gateway
前提条件
请确保您已阅读 理解 Envoy Gateway 文档后再继续操作。
概述
envoy-gateway-operator 用于简化 envoy-gateway instance 部署的高级管理。
其运行架构如下:
envoy-gateway-operator 持续监控 EnvoyGatewayCtl,并自动创建对应的 envoy-gateway instance 部署、服务等资源。
安装
步骤 1:安装 Envoy Gateway Operator
- 进入
管理员 -> Marketplace -> OperatorHub - 在
Networking分类下找到Alauda build of Envoy Gateway,点击安装
步骤 2:创建默认 EnvoyGatewayCtl
-
进入
管理员 -> Marketplace -> OperatorHub -
在
Networking分类下找到Alauda build of Envoy Gateway,点击打开 -
切换到
所有实例标签页 -
点击
创建,在弹出的对话框中找到EnvoyGatewayCtl实例类型部分,点击创建 -
创建 EnvoyGatewayCtl页面显示以下配置选项:建议:典型部署使用默认值,点击 创建 继续。
通过 YAML 配置
您也可以通过 yaml 应用 EnvoyGatewayCtl。
默认配置:
每个 EnvoyGatewayCtl 会创建一个名为 $NS-$NAME 的 GatewayClass,例如 envoy-gateway-operator-cpaas-default。
通过 EnvoyGatewayCtl 进行高级配置
EnvoyGatewayCtl 本质上是基于 helm-operator 封装的 envoy-gateway Helm Chart。其 spec 对应 envoy-gateway chart 的 values,允许您在一个源中配置 Envoy Gateway 的各种全局级功能。
有关可用配置选项的详细信息,请参阅 envoy-gateway-chart-values。
您应仅通过 EnvoyGatewayCtl 资源配置 envoy-gateway instance,不要直接修改渲染出的资源如 ConfigMaps、Deployments,因为这些更改可能在升级或调和过程中丢失。
后端路由
例如,您可以在 EnvoyGatewayCtl spec 中配置后端路由: