扩缩容数据面
API7 网关数据面(DP)节点是无状态的,因此可以随流量增长进行水平扩缩容。本页介绍如何为现有部署增加处理容量。
如果你正在计划生产部署,请一起阅读这些指南:
- 在 Kubernetes 上自动扩缩容数据面 用于基于 Kubernetes 的自动扩缩容。
- 数据面高可用性 用于负载均衡器、健康检查和节点故障处理。
- 数据面弹性 用于承受长时间的控制面中断。
水平扩缩容
水平扩展涉及向你的部署添加更多数据面节点。这是增加 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 节点并将其添加到负载均衡器的上游池来手动扩展数据面。
- 启动新的 DP 节点:部署一个新的 DP 实例,其配置与现有节点相同。
- 验证连接:确保新节点可以连接到控制面。
- 添加到负载均衡器:更新负载均衡器配置以包含新节点的 IP 地址。
扩缩容注意事项
扩缩容数据面时,请考虑以下事项:
- 控制面容量:确保控制面可以处理连接到它的 DP 节点数量的增加。
- 网络带宽:监控网络带宽,确保增加节点后不会出现网络瓶颈。
- 上游性能:扩展网关可能会增加上游服务的负载。请确保上游服务能够处理额外流量。