Kubernetes Setup Guide
This page will guide you through running Kubernetes — from a single-node k3s install on a Raspberry Pi or small VPS through a multi-node cluster for real self-hosted workloads. It will cover the minimum viable Kubernetes knowledge to get applications running, persistent storage, ingress, and know when Kubernetes is the right tool vs when docker-compose will serve you better.
Topics to cover
Section titled “Topics to cover”- k3s single-node install — why k3s for self-hosting (lightweight, batteries-included), curl-install command, what Traefik and CoreDNS you get by default, kubeconfig setup
- kubeadm cluster bootstrapping — when to use kubeadm vs k3s, control plane setup, worker node join, CNI selection (Flannel, Calico, Cilium)
- kubectl basics — essential commands (get, describe, logs, exec, apply, delete), context management, useful aliases and shortcuts
- Namespaces and RBAC — why namespace separation matters, ServiceAccount basics, ClusterRole vs Role, common RBAC patterns for multi-tenant clusters
- Helm chart deployment — what Helm is, adding repos, installing and upgrading charts, values.yaml customization, helm diff for preview
- Persistent storage — local-path provisioner (k3s default), Longhorn for replicated storage on multi-node clusters, PersistentVolumeClaim basics
- Ingress controllers — Traefik (k3s default), Nginx ingress controller, cert-manager for TLS: how they work together, example Ingress resource
- When to use K8s vs docker-compose — complexity trade-offs, operational overhead, good candidates for K8s (HA, many services, team usage) vs docker-compose (personal, few services, simplicity priority)