Envoy Gateway 任务
目录
前提条件介绍HTTP/TCP/UDP Route通过 TargetRefs 的 PolicyAttachment全局配置Route 配置的常见任务高级配置OpenTelemetry(Otel)如何附加到其他命名空间创建的 Listener如何使用其他命名空间创建的证书如何使用 SSL passthrough如何更改 SSL 密码套件使用 NodePort Service 时如何指定 NodePort如何在 EnvoyGateway 中添加 Pod 注解如何为 envoy-gateway-operator 设置 NodeSelector 和 Tolerations如何为 envoy-gateway 设置 NodeSelector 和 Tolerations如何为 envoy-proxy 设置 NodeSelector 和 Tolerations更多配置前提条件
介绍
在 Gateway API 中应用配置变更时,主要有三种方式:
- 直接修改 HTTP/TCP/UDP Route 或
Gateway。 - 通过
Gateway Api和Envoy Gateway提供的 PolicyAttachment 进行修改。 - 在
envoy-gateway instance的全局配置层面进行修改。
HTTP/TCP/UDP Route
通过 TargetRefs 的 PolicyAttachment
Envoy Gateway 提供了丰富的自定义策略机制,可以通过 Gateway API 的 PolicyAttachment 模型附加到网关资源上。
Envoy Gateway 的策略分为多种类型,包括安全策略、流量管理策略等。这些策略可以应用于不同层级的资源,如 Gateway、HTTPRoute 或 Service。
Gateway API 的 PolicyAttachment 机制允许用户以声明式方式将策略附加到网关资源上。该机制通过 targetRefs 字段实现,指定策略应用的目标资源。例如,可以将策略附加到特定的 Gateway、HTTPRoute 或 Service。
Envoy Gateway 支持的策略类型包括:
通过 PolicyAttachment 机制,用户可以灵活地添加、修改或删除策略,而无需修改核心资源定义,实现关注点分离和更好的资源管理。
全局配置
与 envoy-gateway instance 本身相关的配置,或与所有网关相关的全局级别配置,属于该 envoy-gateway instance,例如部署模式或后端路由。
我们建议使用 EnvoyGatewayCtl 来管理这些全局配置。
Route 配置的常见任务
高级配置
OpenTelemetry(Otel)
请按照 OpenTelemetry 集成 中的说明操作,但使用 EnvoyGatewayCtl 修改 envoy-gateway-config。
如何附加到其他命名空间创建的 Listener
在 Gateway 的 listener 配置中,需要指定允许哪些命名空间附加 Routes。
详情请参考 跨命名空间路由。
如何使用其他命名空间创建的证书
要使用其他命名空间创建的证书,需要在证书所在命名空间创建一个 ReferenceGrant。请参照 跨命名空间证书引用 和 referencegrant 的说明操作。
不能指定单个 secret 资源,必须允许整个命名空间
如何使用 SSL passthrough
请参考以下文档说明:
如何更改 SSL 密码套件
请参考 自定义网关 TLS 参数 的说明
ClientTrafficPolicy 中的 .spec.tls 是 clienttlssettings
使用 NodePort Service 时如何指定 NodePort
使用 NodePort 服务时,kubernetes 会为每个服务端口分配一个 NodePort 端口号。通过节点 IP 访问服务时,应使用对应的 NodePort 端口号,而非服务端口。
有两种方式处理:
手动获取 NodePort 分配,详见 从 svc 端口获取 nodeport
在 EnvoyProxy 配置中手动指定 NodePort,而非让 Kubernetes 自动分配。
- 使用 patch 字段对生成的 service 资源进行补丁,指定 NodePort
NodePort 只能在特定范围内,通常为 30000-32767。如果希望 Gateway listener 端口和 NodePort 一致,则 listener 端口也必须在 NodePort 范围内。
如何在 EnvoyGateway 中添加 Pod 注解
如何为 envoy-gateway-operator 设置 NodeSelector 和 Tolerations
更新 Subscription 资源
如何为 envoy-gateway 设置 NodeSelector 和 Tolerations
更新 EnvoyGatewayCtl 资源
如何为 envoy-proxy 设置 NodeSelector 和 Tolerations
更新 EnvoyProxy 资源
更多配置
请参考 EnvoyGateway 任务