K0s with Tailscale VPN

By Taha7 minutes read

Disclaimer

In this guide, I will use Fedora 41 Cloud Edition as the base operating system. Some steps may vary depending on the distribution you are using.


Prerequisites

Important

  • I will use the following machines:

    • Master Node:
      • Hostname: m1.srv.mtaha.dev
        CPU: Intel(R) Celeron(R) N3450 (4) @ 2.20 GHz (x86_64)
        RAM: 8 GB
        OS: Fedora 41 Cloud Edition
        Location: Homelab
        Machine: Zimaboard 832
    • Worker Node 1:
      • Hostname: w1.srv.mtaha.dev
        CPU: Intel Xeon (Skylake, IBRS, no TSX) (4) @ 2.10 GHz (x86_64) [Upgraded today]
        RAM: 8 GB [Upgraded today]
        OS: Fedora 41 Cloud Edition
        Location: Hetzner Cloud
        Machine: CX32 [Upgraded today]
    • Worker Node 2:
      • Hostname: w2.srv.mtaha.dev
        CPU: ARM Cortex-A76 (4) @ 2.40 GHz (aarch64)
        RAM: 8 GB
        OS: Fedora 41 Cloud Edition
        Location: Homelab
        Machine: Raspberry Pi 5 - 8 GB

Step 1: Install Tailscale


Step 2: Set up Tailscale ACL


Step 3: Set up Hostname and Hosts File


Step 4: Set up FirewallD rules


Step 5: Enable CGroup and Disable Swap


Step 6: Enable IP Forwarding


Step 7: Update System Packages


Step 8: Regenerate Initramfs and Apply Bootloader Configuration


Step 9: Verify the Changes


Optional Step: Install K9s CLI


Step 10: Set up K0s and K0sctl

Step 11: Set up K0SCTL Init File


Step 12: Initialize K0s Cluster


Step 13: Install Helm Package Manager in Master Node


Step 14: Install MetalLB Load Balancer


Step 15: Install local-path-provisioner Storage Class


Conclusion

References