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.
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.
- 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.
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.
- Kubernetes Documentation
- Metallb Configuration
- Kubernetes Services Networking
- Kubernetes Deployments
- Dockerfile reference
- Kubernetes tutorial — Create deployments using YAML file
- MetalLB (Network LoadBalancer ) & Minikube
- VSFTPD.CONF
- vsftpd Configuration Options
- Grafana - Install and Configure Grafana, InfluxDB, telegraf - 1
- Grafana - Install and Configure Grafana Dashboard - 2
- Grafana Package
- Map Environment Variables Using Secrets
- Set up an Nginx Reverse Proxy for Grafana
- Configure a Pod to Use a PersistentVolume for Storage
- Kubernetes liveness probe – Command Exec