Skip to content

ehlesp/smallab-k8s-pve-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Small homelab K8s cluster on Proxmox VE

A complete guide for building a virtualized Kubernetes homelab

Welcome to the revised version of this guide for building your own small Kubernetes homelab with a low-end consumer-grade computer. Its chapters offer procedures to setup a virtualization platform where to run a compact Kubernetes cluster using virtual machines as nodes. Not only that, here you can find concrete examples of app deployments showing how to make real use of your Kubernetes cluster. Furthermore, this guide also contains instructions covering other details such as hardening, backups, or updates planning.

This guide avoids using tools such as K3sup, Terraform or Helm to handle Kubernetes-related tasks. For the most part, it only uses the official kubectl command and Kustomize-based declarations. On the hardware side, the real computer this guide is based on might surprise you with its somewhat limited specifications. The first chapter G001 explains its specifications in detail, and may help you budget your own homelab setup better.

On the other hand, although this guide explains a lot of the stuff done in it, it is not designed to teach about Linux, virtualization, or Kubernetes. It only explains stuff to make clear why certain technical decisions were made on each of its chapters, or to warn about particular issues that can happen in the setup. It is better to think about this guide as a cookbook where each chapter is a recipe to solve a specific concern from the same scenario.

It is also important to highlight that this guide is complete. Its core goal is fully covered by its main chapters, and even provides some extra information in the form of appendixes. In other words, this guide offers you, in one place, a complete set of instructions to build and run a small Kubernetes cluster with virtual machines on a single consumer-grade computer.

Main concepts

The procedures explained in this guide deal mainly with three concerns:

  • How to install and configure the Proxmox VE virtualization platform.
  • How to setup a small Kubernetes cluster with VMs.
  • How to deploy applications on the Kubernetes cluster.

Within those main concepts, this guide also covers (up to a point) details like hardening, firewalling, optimizations, backups and a few other things that came up while working in the homelab set up by this guide.

Each chapter in the guide is detailed and explanatory, only omitting things when they have been already done in a previous step or chapter, or is understood that the reader should know about them already. Also, each chapter is usually about one main concern or procedure, and the guide's setup serves as the example scenario illustrating how to implement it.

Note

This guide has been written in GitHub Flavored Markdown format
All the chapters of this guide are GitHub Flavored Markdown documents you can visualize rendered as HTMLs either in GitHub directly or in compatible Markdown viewers or editors.

Intended audience

Anyone with some background in Linux and virtual machines having an interest in Kubernetes. Also, those with the need or the curiosity to run Kubernetes on a single capable-enough consumer-grade computer.

Goal of this guide

The main goal, for the build explained in this guide, is to turn a rather low-end consumer-grade computer into a small Kubernetes homelab able to run some practical workloads.

Software used

The core software used in this guide to build the homelab is:

After setting up the Kubernetes cluster, the idea is to deploy in it the following software:

  • Publishing platform: Ghost.
  • Lightweight git server: Forgejo.
  • Monitoring stack: set of monitoring modules including Prometheus, Grafana and a couple of other related services.

Also, the resulting homelab has some backup features enabled in it.

Table of contents

All the chapters and their main sections are directly accessible through this guide's Table Of Contents.

References

Software

Navigation

<< Previous (G910. Appendix 10) | +Table Of Contents+ | Next (G001. Hardware setup) >>