高可用部署步骤
本文档介绍了如何对 API7 网关的以下组件进行高可用部署:
- 控制面:
- API7 Dashboard
- DP Manager
- 数据面:
- API7 Gateway
不包括以下组件的高可用部署:
- PostgreSQL
- Prometheus
前提条件
- 完成 高可用配置准备。
- 自行另外安装 PostgreSQL 和 Prometheus (可选)。
控制面部署步骤
API7 Dashboard 是控制面中的主要组件,它是一个 Web GUI 并处理业务逻辑。API7 Dashboard 是一个无状态服务,所有数据信息都存储在关系型数据库中(默认使用 PostgreSQL)。
为达到高可用,需要不只一个控制面节点,而是一个包含多个节点的集群。同时,你需要在多个控制面节点之前部署一个负载均衡。通过负载均衡,可以将进入的流量均匀分配到多个控制面节点上,如果某个节点发生故障,负载均衡可以将其移除,确保流量不会被发送到不可用的节点上。
对于所有控制面节点,请执行以下操作:
- 将控制面软件包复制到主机。你可以从高可用配置准备中获取合适的软件包。
- 配置
dashboard-config.yaml以修改数据库地址:
server:
listen:
host: "0.0.0.0"
port: 17080
database:
dsn: "postgres://$user:$password@$postgresql_address:$postgresql_port/api7ee"
- 启动 API7 Dashboard:
docker run -d -p 17080:17080 -v ./dashboard-config.yaml:/app/conf/config.yaml api7/api7-ee-3-integrated:v3.2.16.3
- 配置
dp-manager-config.yaml:
打开配置文件,修改其中数据库地址的配置项:
server:
listen:
host: "0.0.0.0"
port: 17900
database:
dsn: "postgres://$user:$password@$postgresql_address:$postgresql_port/api7ee"
- 启动 DP Manager:
docker run -d -p 17900:17900 -v ./dp-manager-config.yaml:/usr/local/api7/conf/config.yaml api7/api7-ee-dp-manager:v3.2.9.1
数据面部署步骤
API7 网关根据接受来自客户端的流量并将其转发到上游进行收费,因此数据面节点也可以称为网关实例。API7 网关是一个无状态组件,所有配置信息都存储在 PostgreSQL 中。因此,您可以部署多个节点来提高数据面的高可用性。