CODAM project Curriculum 2019
- Project type: System Administration and Networking.
- Objective: Setting up an infrastructure of different services using Kubernetes.
This project is aimed to set up a multi-service cluster. It must meet the following requirements:
- You must use Kubernetes
- Each service will have to run in a dedicated container.
- For performance reasons, containers have to be build using Alpine Linux.
- Containers will need to have a Dockerfile which is called in the setup.sh script.
- Build by yourself the images that the project will use.
Mandatory set ups:
- The Kubernetes web dashboard.
- The Load Balancer(MetalLB). It will be the only entry point to your cluster. Load Balancer will have a single ip.
- A WordPress website listening on port 5050, which will work with a MySQL database.
- phpMyAdmin, listening on port 5000 and linked with the MySQL database (MariaDB).
- A container with an nginx server listening on ports 80 and 443.
- A FTPS server listening on port 21.
- A Grafana platform, listening on port 3000, linked with an InfluxDB database.
- It is forbidden to take already build images or use services like DockerHub.
- Usage of Node Port services, Ingress Controller object or kubectl port-forward command is prohibited.
For performance reasons, it is recommended to run this project on MacOs or Linux. In this repository, the scripts were made for MacOs. However, in the setup.sh script, you can find some notes about Windows (10 Home edition).
- For Kubernetes commands: Install kubectl
- For Kubernetes cluster:Install minikube
- For Virtual Machine: Install virtualBox
- For testing FTP server is highly recommended: Install FileZilla
π For testing in CODAM pcs, before run setup.sh script, you can use CODAM_config.sh script.
- If you are using powershell, be sure to run as Administrator.
- For running script files, it is necessary to have installed a Linux-like interface (Cygwin e.g.).
- Clone the repository and go to folder
cd ft_services
- Type in the terminal
bash setup.sh
- Type in a new terminal
kubectl get all
for display services, pods, deployments, etc.
More info in the Wiki!
- VirtualBox
- Dashboard
- Nginx
- Wordpress
- Phpmyadmin
- Grafana
- Filezilla
- Certificate - Filezilla