Skip to content

vdedios/k8s-cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

k8s-cluster ⚓️

A system administration and networking project. Create and deploy a complete Kubernetes cluster. The aim of this project is to introduce to Kubernetes by creating a self managed cluster to play with in a local environment.

picture alt

Installation

First of all, you will need sto have previously installed:

After installing dependencies just run the installation script. This script will automatically create the cluster, all Docker images, deployments, services and persistent volumes needed to run the cluster.

./setup.sh

Once finished you will get a list of all services with their corresponding ips and ports

Specs

The following specifications are included in this project:

  • The cluster is set up with minikube. This choice is made due to having MacOS as local environment and LoadBalancer as service. Using any multinode/Docker based solution as kind would only work on Linux since you cannot connect to Docker bridge's network from a MacOS host.

  • As said, the service type is LoadBalancer. Since we are running local and don't have access to any Cloud Provided tooling this service is implemented with MetalLB

  • Persistence volumes are use to ensure all the services keep running despite any technical issues.

Featuring services

The services running are:

  • Nginx server with http, https and ssh connections
  • MySQL Database
  • Wordpress
  • PhpMyAdmin
  • Grafana dashboard
  • InfluxDB Database
  • FTPS server

Some detailed comments

  • Telegraf is used to provide all the data from services to InfluxDB. This is done by connecting it directly to Docker socket endpoint = "unix:///var/run/docker.sock" which allows us to retreive the data from all applications runngin without having to install it on every single pod.

  • All the images are created using Minikube's Docker daemon. To enable this you have to locally export some variables eval $(minikube -p minikube docker-env)

About

⚓️ A Kubernetes cluster

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published