/ft_services

The project consists of setting up an infrastructure of different services, using Docker, Kubernetes minikube, and showing the status of each service in real time, using Grafana and influxDB.

Primary LanguagePHP

ft_services

Project Overview

ft_services is my second System Administration and Networking school project, where I had to setup an infrastructure of different services using Kubernetes. Those services must run in a dedicated container. Each service was built manually no built-in images were used, but Alpline Linux used as the base image.

Technical Details

The whole project was built locally so this is what has been used.

  • Minikube as local Kubernetes cluster.
  • MetalLB to enable services of type LoadBalancer in a non-cloud environment.
  • Docker of course holding the following services:
    • Nginx used as a reverse proxy,
    • PhpMyAdmin linked with Mysql database.
    • A WordPress website that works with Mysql database.
    • FTPS server.
    • Grafana platform linked with InfluxDb database.

What I Learned

  • Learned containers orchestration.
  • Learned to write a fully customized Dockerfiles.
  • Learned to write YAML files of kind deployment and service manifests to configure k8s cluster.
  • Learned to write Bash scripts to automate repetitive tasks.
  • Learned to configure & run each service mentioned above.

How To Use

First of all you need to have minikube and metallb installed on your machine, if you don't follow these guides.

Next run the following script and it will take care of everything.

sh ./setup.sh

This way has been tested both in macOS and Linux systems.

Resources