A Kong cluster can scale the system horizontally by adding more machines/VMs/containers to handle more incoming requests.
To configure multiple Kong nodes into a cluster, point them all to the same datastore or use the same declarative configuration in DB-less mode.
A load balancer is required in front of the Kong cluster to distribute traffic across the available nodes.
GG has some more components for full integration,
There are two approaches in Kong for configuration storage.
GG Kong DB Clustering#
In this approach
Kong uses the
Database(Postgres or Cassandra) to store the
You can see in below diagram it using
Kong Database for storing configuration and same database access by every Kong Node.
GG Kong DB-less Clustering#
In this approach Kong uses the second configuration file, in YAML or JSON, using declarative configuration.
To use Kong in DB-less mode, set the
database directive of
off. As usual, you can do this by editing
kong.conf and setting
database=off or via environment variables. You can then start Kong as usual.
Check here for Kong DB-less configurations.
In below diagram there is no
Kong Database. It use YAML Configuration file on every node with same configurations.
Components and configurations#
You need to install Kong on every Node. Which will share the same Database and Configurations.
You need only
one UIto configure Kong. In
DB-Lessmode, you only see the configurations. To update the configuration, you need to update the YAML Config file.
You can use any kong approach to store the configurations. In diagrams there is one
rate-limitingplugin example. Which point to same
redisserver for data store, accsss and share between all the kong nodes.
Set up the Gluu Gateway node#
Before Setup Nodes, You need to install the GG one any one node so you have
GG UI and
Postgres DB. which you can connect to other nodes for quick setup.
Below are the 2 steps to setup the kong nodes.
1. Install Kong#
- Follow this link to download and install kong on Ubuntu (Focal or Bionic).
- Follow this link to download and install kong on Debian (Buster or Stretch).
- Follow this link to download and install kong on RHEL.
- Follow this link to download and install kong on CentOS.
2. Set up GG plugins and libraries#
tar -xvzf gluu-gateway-node-deps.tar.gz
The script will ask the following questions about the Postgres database, which is shared between the nodes. If you want to configure DB-less then after this setup, you need to manually update the
Questions Descriptions Enter PG host Enter your Postgres database host or IP Enter PG Port Enter your Postgres database port Enter PG User Enter your Postgres database user Enter PG Password Enter your Postgres database password. It will not show during typing values, so you just need to type your password. Enter PG Database Enter your Postgres database name which you are already sharing between multiple kong nodes.
Done. If any problems arise, check the
Other Kong configurations are adjusted by updating