This project is a designed to explore kubernetes deployments using a highly overly complicated architecture to allow for creating many pods and using multiple different technologies.
NOTE: This project is not being updated and may use old / insecure packages. It should be used for reference only.
A high level overview of the architecture is down in the image below.
Once deployed the multi-k8s website allows users to enter a number and calculates the Fibonacci number at that index.
The user-facing deployment consits of the following:
- The multi-client — a simple ReactJS site with the form to enter a new index and shows the results of the calculations.
- The multi-server — an express server that acts as the REST API, reading and writing to the postgres database and redis instance.
- The multi-worker — a nodejs worker that subscribes to inserts into the redis instance and calcualtes the Fibonacci number for the given index, saving the result back into redis.
Also created:
- A postgres database with a persistant volume claim
- A redis instance
- NGINX ingress routing requests to the
multi-client
ormulti-server
depending on the path component of the request.
This project is automatically deployed to Google Cloud using Travis CI
On Google Cloud the deployment makes use of a Google Cloud Load balancer