在 TKE 使用 EnvoyGateway 流量网关
概述
EnvoyGateway 是基于 Envoy 实现 Gateway API 的 Kubernetes 网关,你可以通过定义 Gateway API
中定义的 Gateway
、HTTPRoute
等资源来管理 Kubernetes 的南北向流量。
本文将介绍如何在 TKE 上安装 EnvoyGateway 并使用 Gateway API
来接入和管理流量转发。
说明
Kubernetes 提供了 Ingress API
来接入七层南北向流量,但功能很弱,每种实现都带了不同的 annotation 来增强 Ingress 的能力,灵活性和扩展性也较差,在社区的推进下,推出了 Gateway API
作为更好的解决方案,解决 Ingress API 痛点的同时,还统一了四七层南北向流量,同时也支持服务网格的东西向流量(参考 GAMMA),各个云厂商以及开源代理软件都在积极适配 Gateway API
,可参考 Gateway API 的实现列表,其中 Envoy Gateway 便是其中一个很流行的实现。
在 TKE 上使用 EnvoyGateway 相比自带的 CLB Ingress 还有一个明显的优势,就是多个转发规则资源(如HTTPRoute
)可以复用同一个 CLB,且可以跨命名空间。CLB Ingress 必须将所有转发规则写到同一个 Ingress 资源中,不方便管理,且如果不同后端 Service 跨命名空间了,则无法用同一个 Ingress (CLB)来管理了。