Kubernetes Migration

The Plan

I have decided to set out on a journey. A journey to move from Docker and compose to Kubernetes, by way of k3s and Flux. I have a high level plan, and I plan to write another post here after the migration with my lessons learned and details.

The Plan

  • Install on VPS
    • Install k3s on the VPS
    • Install Flux on the VPS
  • Infrastructure Setup for VPS
    • Kustomize Overlays
    • Network Setup, Netbird client connect to the existing docker netbird network for now
    • Storage configuration
  • Install k3s on the Home Server
  • Infrastructure Setup for Home Server
    • Kustomize Overlays
    • Network Setup, Netbird client connect to the existing docker netbird network for now
    • Storage configuration
  • Migrate services from Docker to k3s/Flux
    • Netbird migration
    • Start with stateless services
    • Stateful services

Why migrate to Kubernetes?

There are a few reasons for this migration. I want to learn more Kubernetes and DevOps skills, this is a great way for me to pick up those skills! I also want the GitOps workflow that Flux and k3s will give me. Moving to a GitOps workflow with Flux makes sure my infrastructure is declarative and version-controlled. This not only helps with documenting my setup but also makes the homelab significantly more resilient, allowing for rapid recovery from failures with a simple re-sync of the cluster state from Git.

Architecture Diagram

Kubernetes Architecture