The main goal of this solo project is to introduce students to Kubernetes by orchestrating services similar to those used for a real website. Additionally students deepen their knowledge about Docker. Every service has to run in a dedicated container and must use Alpine Linux for performance reasons. We are not allowed to use Dockerhub and Kubernetes deployments must use self-made and local Docker images.
The services to deploy are a Wordpress, Phpmyadmin, Nginx, Ftps, Grafana (linked with InfluxDB receiving metrics from Telegraf). Additionally the Nginx container must be accessible through SSH and containers must restart in case they crash or the service becomes unavailable.
To build the Docker images and deploy the services on MacOS (I have not tested the script on Linux) you can run the setup.sh script. It requires Minikube and Docker to be installed. You can run display.sh to display links to the deployed services.
git clone https://github.com/paozer/ft_services && cd ft_services && ./setup.sh
This project requires reading a lot documentation and bumping into a lot of new concepts.
- setup metallb.universe.tf loadbalancer
- use secrets for ssh certificates
- improve overall security
- improve ftps security
- add pod readiness probes