High Availability Installation
This document describes how to configure API7 Gateway High Availability in the following aspects:
- Control plane
- API7 Dashboard
- DP Manager
- Data plane
- API7 Gateway
Not covered:
- PostgreSQL
- Prometheus
Prerequisites
- Finish Prepare for high availability.
- Install PostgreSQL and Prometheus (optional).
Control Plane
API7 Dashboard is the major component of the control plane, which is a Web GUI and processes the business logic. API7 Dashboard is a stateless service, and all the data information is stored in PostgreSQL.
To ensure high availability, you require a control plane cluster that contains multiple control plane nodes. Additionally, it is essential to deploy a load balancer in front of all the control plane nodes. If a node fails, the load balancer can remove it from the pool, ensuring that traffic is not sent to unavailable nodes.
For all control plane nodes, do the following:
1. Copy Control Plane Package to the Host
Get the proper package when preparing for high availability.
2. Configure dashboard-config.yaml
Modify database address:
server:
listen:
host: "0.0.0.0"
port: 17080
database:
dsn: "postgres://$user:$password@$postgresql_address:$postgresql_port/api7ee"
3. Start API7 Dashboard
docker run -d -p 17080:17080 -v ./dashboard-config.yaml:/app/conf/config.yaml api7/api7-ee-3-integrated:v3.2.9.1
4. Configure dp-manager-config.yaml
Modify database address:
server:
listen:
host: "0.0.0.0"
port: 17900
database:
dsn: "postgres://$user:$password@$postgresql_address:$postgresql_port/api7ee"
5. Start 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
Data Plane
API7 Gateway charges for accepting traffic from the client and forwarding it to upstreams, so a data plane node can also be called a Gateway Instance. The API7 Gateway is a stateless component, and all configuration information is stored in PostgreSQL. Therefore, you can deploy multiple nodes to improve the high availability of the data plane.
To ensure high availability, you require a data plane cluster that contains multiple data plane nodes. The data plane cluster can also be called a Gateway Group. Additionally, it is essential to deploy a load balancer in front of all the data plane nodes. If a node fails, the load balancer can remove it from the pool, ensuring that traffic is not sent to unavailable nodes.
For all data plane nodes, do the following:
1. Log in to API7 Dashboard.
2. Create/Enter the proper gateway group.
3. Click Add Gateway Instance
Refer to Add Gateway Instance.