Ft_services is a project that introduces you to Kubernetes and its capabilities. You will learn how to manage and deploy clusters utilizing Kubernetes and virtualize a network. You will set up a multi-service cluster, comprised of various services that each run in a dedicated container. All containers must be built using Alpine Linux for performance reasons and must have a Dockerfile written by you which is called in the setup.sh.
The services included in the cluster are:
- Kubernetes web dashboard: This helps manage the cluster
- Load Balancer: This manages the external access of services and is the only entry point to the cluster
- WordPress website: This runs on port 5050 and works with a MySQL database, both running in separate containers
- phpMyAdmin: This runs on port 5000 and is linked with the MySQL database
- nginx server: This runs on ports 80 and 443, with port 80 being a 301 redirection to 443. It allows access to the WordPress website and phpMyAdmin
- FTPS server: This runs on port 21
- Grafana platform: This runs on port 3000 and is linked with an InfluxDB database, both running in separate containers
You must ensure that the data persist in case of a crash or stop of one of the database containers and that all containers restart in case of a crash or stop of any of its component parts. All redirection towards a service must be done using the Load Balancer, with FTPS, Grafana, WordPress, phpMyAdmin, and nginx all being of type "LoadBalancer" and InfluxDB and MySQL being of type "ClusterIP".
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
What things you need to install the software and how to install them
- Kubernetes
- Docker
- Alpine Linux
- FTPS server
A step by step series of examples that tell you how to get a development environment running
- Install Kubernetes on your system
- Install Docker
- Install Alpine Linux
- Install FTPS server
- Write the Dockerfiles for each service
- Build each service's image
- Set up the Kubernetes web dashboard
- Set up the Load Balancer
- Set up the WordPress website and MySQL database
- Set up phpMyAdmin
- Set up the nginx server
- Set up the FTPS server
- Set up the Grafana platform and InfluxDB database
- Ensure data persistence in case of a crash or stop of one of the database containers
- Ensure that all containers restart in case of a crash or stop of any of its component parts
- Ensure that all redirection towards a service is done using the Load Balancer
Add additional notes about how to deploy this on a live system
- Make sure all services are running and configured properly
- Expose the services to the outside world
- Make sure the Load Balancer is correctly configured
- Test the connections to the services
- Monitor the services to ensure they are running as expected
- Kubernetes
- Docker
- Alpine Linux
- FTPS server
- Hat tip to anyone whose code was used
- Inspiration
- etc