Day 1: Setting Up k3s on My VPS
•1 min read
kubernetesk3shomelabdevops
Today marks the beginning of my Kubernetes homelab journey. I've decided to document the setup and evolution of my k3s cluster running on a VPS.
Why k3s?
After considering various options (minikube, kind, full kubeadm), I chose k3s for several reasons:
- Lightweight: Single binary under 100MB
- Production-ready: CNCF-certified Kubernetes distribution
- Built-in essentials: Traefik ingress, CoreDNS, local-path provisioner
- Easy HA: Simple to add nodes later
Initial Setup
The installation was straightforward:
curl -sfL https://get.k3s.io | sh -After a minute or so, I had a running cluster:
sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
vmi2951245 Ready control-plane,master 1m v1.34.3+k3s1First Namespaces
I immediately set up the foundational infrastructure:
# monitoring namespace for Prometheus/Grafana
apiVersion: v1
kind: Namespace
metadata:
name: monitoring
---
# microservices namespace for shared infrastructure
apiVersion: v1
kind: Namespace
metadata:
name: microservicesWhat's Next
Over the coming days, I'll be:
- Setting up ArgoCD for GitOps deployments
- Configuring cert-manager for TLS certificates
- Adding Prometheus and Grafana for observability
- Deploying my first applications
This is just the beginning. The goal is to build a production-grade platform for running my portfolio projects and experimenting with cloud-native technologies.
This post is part of my K8s Cluster Journal - documenting the evolution of my homelab infrastructure.
