转发四层流量
API7 网关除了处理应用层(L7)流量外,还可以处理传输层(L4)TCP 和 UDP 流量。
本教程将演示如何配置 四层路由 在客户端和 MySQL 服务器之间代理 L4 流量。
前提条件
- 安装 API7 企业版。
- 网关组中至少有一个 网关实例。
- 安装 MySQL 客户端 以验证四层路由。
启动 MySQL 服务器
- Docker
- Kubernetes
如果你在 Docker 中安装了网关实例并使用 Dashboard 或 ADC 进行配置,请在默认的 API7 企业版网络 api7-ee_api7 中启动 MySQL 服务器:
docker run -d \
--name mysql \
--network=api7-ee_api7 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=password \
mysql:8.4 \
mysqld --mysql-native-password=ON
如果你在 Kubernetes 上安装了网关实例并使用 Ingress Controller 进行配置,请在 Kubernetes 上启动 MySQL 服务器:
kubectl run mysql --image mysql:8.4 --port 3306 --env="MYSQL_ROOT_PASSWORD=password"
通过服务暴露服务器端口:
kubectl expose pod mysql --port 3306
添加具有四层路由的服务
- 控制台
- ADC
- Ingress Controller
- 从侧导航栏中选择网关组的 已发布服务,然后点击 新增服务。
- 选择 手动新增。
- 在表单中执行以下操作:
- 名称 填写
MySQL。 - 服务类型 选择
Stream(四层代理)。 - 上游 Scheme 选择
TCP。 - 如何找到上游 选择
使用节点。 - 点击新增节点。
- 在表单中执行以下操作:
- 主机 填写
127.0.0.1。 - 端口 填写
3306。 - 权重 使用默认值
100。 - 点击 新增。这将新建一个 “无版本” 状态的新服务。
- 主机 填写
- 在服务内,点击 新增四层路由。
- 在表单中执行以下操作:
- 名称 填写
stream-route-mysql。 - 服务器地址 填写
127.0.0.1。 - 在服务器端口 填写
2000。 - 点击 新增。