DEV Community

Cover image for Setup your own kubernetes cluster on VMs
pongsatt
pongsatt

Posted on

7 4

Setup your own kubernetes cluster on VMs

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.

Requirement

  • 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.

Setup detail:

  1. Prepare Virtual Machine using Virtualbox and Ubuntu
  2. Setup kubernetes cluster using kubeadm (1 master 3 nodes)
  3. Setup dynamic storage class provisioner based on NFS
  4. Setup nginx ingress and cert-manager to automatically apply letsencrypt certificate
  5. Deploy static front-end application to kubernetes cluster using Jenkins CD and minio with automatic https cert
  6. Deploy back-end api application with database to the kubernetes cluster with Jenkins CD

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs