My requirement is that I want a server I can can play around. I tried Docker with Jenkins CD and it was awesome. Then Docker swarm and Kubernetes came so I wanted to upgrade my Docker environment to a cluster. The problem is that I've got only a PC and I don't want to pay for my playground environment. Then I found that I can achieve this using a tool named kubeadm and some virtual machines. I would like to share my environment and how to set it up as well as my record for steps I used.
I divided the steps into a series of posts so it's easy and concise enough to follow.
- A kubernetes cluster based on kubeadm
- Support dynamic storage provisioning based on NFS
- Support Ingress with automatically acquire let's encrypt certificate
- Be able to deploy application using Jenkin CD pipeline for both backend and frontend
You can follow each step in each post below.
- Prepare Virtual Machine using Virtualbox and Ubuntu
- Setup kubernetes cluster using kubeadm (1 master 3 nodes)
- Setup dynamic storage class provisioner based on NFS
- Setup nginx ingress and cert-manager to automatically apply letsencrypt certificate
- Deploy static front-end application to kubernetes cluster using Jenkins CD and minio with automatic https cert
- Deploy back-end api application with database to the kubernetes cluster with Jenkins CD