Welcome to Kubernetes

Welcome to Kubernetes (K8s)! ๐ŸŒฟ

I have decided to look into Kubernetes, and this happened a few years back. The whole world seemed to be talking about cloud and something named Kubernetes popped up.

What is Kubernetes?!

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds upon 15 years of experience of running production workloads at Google, combined with best-of-breed ideas and practices from the community.

Source: The main web page for the project Kubernetes.io

This is all fine and when people say they run K8s they actually say, I run lots of projects on top of Kubernetes. I run my own applications, but to do that I need a lot of supporting software from a community of projects.

Try going to the list of Cloud Native Computing Foundation (CNCF) projects on the landscape site: https://landscape.cncf.io/ โ€“ which will show a huge page of logos from all sorts of projects in multiple categories.

This K8s installation

I am running this web site along with other web sites on Kubernetes using multiple products. My background is in Unix and networking, so my choices for components are influenced greatly by this. YMMV.

First I made two virtual machines, they are quite small and use a standard Debian Linux. I also use a network with a router based on BGP. I have my own IP space and control everything routing, so it makes it easy to run K8s myself.

  • Main installation was done using kubeadm for initialisation of the cluster
  • Then I installed a Container Network Interface (CNI) named Cilium chosen because it supported ingress and egress filtering of network traffic, plus it can act as a host firewall โ€“ even though that part took way longer than expected! It is also mature and has excellent documentation
  • I added NFS server to the Debian Linux layer, exporting a part of the file system to NFS. This allowed me to provide storage by using the NFS provisioner which I think is a simple way to have easy access and backup becomes a matter of old skool Unix file backups
  • Certificates for Transport Layer Security (TLS) are from Letโ€™s Encrypt and are managed using cert-manager
  • Things are mostly installed using kubectl apply but I also use the Helm package manager, which I recommend

On top of the K8s installation I currently run basic Nginx as a web server.

I other notes I will detail parts of the installation, documenting it for myself, but you may be inspired to try something similar.

Debian Linux logo Cilium logo Cilium logo Cert Manager logo Helm Package Manager logo

Notes mentioning this note


Here are all the notes in this garden, along with their links, visualized as a graph.