跳到主要内容
版本:3.10.x

扩缩容数据面

API7 网关数据面(DP)节点是无状态的,因此可以随流量增长进行水平扩缩容。本页介绍如何为现有部署增加处理容量。

如果你正在计划生产部署,请一起阅读这些指南:

水平扩缩容

水平扩展涉及向你的部署添加更多数据面节点。这是增加 API7 网关容量的最常见方法。

无状态设计

数据面节点不存储任何本地状态。所有配置均从控制面接收并保存在内存中。这意味着你可以添加或删除 DP 节点,而不会丢失任何配置或影响整体系统稳定性。

负载均衡器配置

负载均衡器(例如 NGINX、HAProxy 或云提供商的负载均衡器)通常放置在数据面节点前面以分配传入流量。

  • 健康检查:配置负载均衡器定期检查 DP 节点状态,通常使用端口 7085 上的 /status/status/ready 端点。
  • 负载均衡算法:根据你的流量模式,使用轮询、最少连接或 IP 哈希等算法。

Kubernetes 水平 Pod 自动扩缩容(HPA)

在 Kubernetes 上运行 API7 网关时,可以使用 HPA 根据 CPU 或内存利用率自动调整 DP Pod 数量。

# HPA 配置示例
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: api7ee-dp-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: api7ee-dp
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70

手动扩缩容

在非 Kubernetes 环境中,你可以通过启动新 DP 节点并将其添加到负载均衡器的上游池来手动扩展数据面。

  1. 启动新的 DP 节点:部署一个新的 DP 实例,其配置与现有节点相同。
  2. 验证连接:确保新节点可以连接到控制面。
  3. 添加到负载均衡器:更新负载均衡器配置以包含新节点的 IP 地址。

扩缩容注意事项

扩缩容数据面时,请考虑以下事项:

  • 控制面容量:确保控制面可以处理连接到它的 DP 节点数量的增加。
  • 网络带宽:监控网络带宽,确保增加节点后不会出现网络瓶颈。
  • 上游性能:扩展网关可能会增加上游服务的负载。请确保上游服务能够处理额外流量。

后续步骤