<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: subnet savy</title>
    <description>The latest articles on Forem by subnet savy (@subnetsavy).</description>
    <link>https://forem.com/subnetsavy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3240632%2Fb5c69372-5d81-489b-b739-ce8cfda75996.png</url>
      <title>Forem: subnet savy</title>
      <link>https://forem.com/subnetsavy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/subnetsavy"/>
    <language>en</language>
    <item>
      <title>How to Build a Home Kubernetes Cluster With Raspberry Pi (2025 Guide)</title>
      <dc:creator>subnet savy</dc:creator>
      <pubDate>Mon, 07 Jul 2025 22:29:21 +0000</pubDate>
      <link>https://forem.com/subnetsavy/how-to-build-a-home-kubernetes-cluster-with-raspberry-pi-2025-guide-204o</link>
      <guid>https://forem.com/subnetsavy/how-to-build-a-home-kubernetes-cluster-with-raspberry-pi-2025-guide-204o</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F52dzfl5vtlqryq95lmhe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F52dzfl5vtlqryq95lmhe.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’ve ever wanted to get hands-on with Kubernetes without paying for expensive cloud resources, building your own home lab is the perfect solution.&lt;/p&gt;

&lt;p&gt;This guide walks you through setting up a &lt;strong&gt;lightweight Kubernetes cluster&lt;/strong&gt; using Raspberry Pi devices, K3s, MetalLB, and Tailscale for secure networking.&lt;/p&gt;




&lt;h2&gt;🏠 Why Build a Home Kubernetes Cluster?&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Practice DevOps and cloud-native workflows locally.&lt;/li&gt;
  &lt;li&gt;Avoid recurring cloud costs.&lt;/li&gt;
  &lt;li&gt;Learn cluster networking, persistent storage, and scaling in a safe environment.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;🚀 Step-by-Step Setup&lt;/h2&gt;

&lt;h3&gt;1. Flash Raspberry Pi OS&lt;/h3&gt;

&lt;p&gt;Use &lt;a href="https://www.raspberrypi.org/software/" rel="noopener noreferrer"&gt;Raspberry Pi Imager&lt;/a&gt; to install Raspberry Pi OS Lite. Configure SSH access and Wi-Fi/Ethernet.&lt;/p&gt;




&lt;h3&gt;2. Install K3s on Each Node&lt;/h3&gt;

&lt;p&gt;On your master node:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;curl -sfL https://get.k3s.io | sh -
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Get the join token for worker nodes:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo cat /var/lib/rancher/k3s/server/node-token
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;On worker nodes, join them to the cluster:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;curl -sfL https://get.k3s.io | K3S_URL=https://&amp;lt;MASTER_NODE_IP&amp;gt;:6443 K3S_TOKEN=&amp;lt;TOKEN&amp;gt; sh -
&lt;/code&gt;&lt;/pre&gt;




&lt;h3&gt;3. Configure MetalLB&lt;/h3&gt;

&lt;p&gt;Enable load balancing for your cluster by installing MetalLB:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-native.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Create a MetalLB ConfigMap to define the IP address pool:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: my-ip-pool
  namespace: metallb-system
spec:
  addresses:
  - 192.168.1.240-192.168.1.250
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Apply it with:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;kubectl apply -f metallb-config.yaml
&lt;/code&gt;&lt;/pre&gt;




&lt;h3&gt;4. Secure with Tailscale&lt;/h3&gt;

&lt;p&gt;Install &lt;a href="https://tailscale.com" rel="noopener noreferrer"&gt;Tailscale&lt;/a&gt; on all nodes for secure VPN access to your cluster from anywhere.&lt;/p&gt;

&lt;p&gt;On each node:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Once connected, you can access your cluster securely from any device.&lt;/p&gt;




&lt;h2&gt;📊 Next Steps: Add Monitoring&lt;/h2&gt;

&lt;p&gt;Set up Prometheus and Grafana for monitoring, or deploy test apps using Helm charts to validate your setup.&lt;/p&gt;




&lt;p&gt;📌 &lt;strong&gt;Original Post:&lt;/strong&gt; &lt;a href="https://subnetsavy.com/wp-content/uploads/articles/build-k8-pi.html" rel="noopener noreferrer"&gt;Build a Home Kubernetes Cluster (Subnet Savy)&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>homelab</category>
      <category>devops</category>
      <category>raspberrypi</category>
    </item>
    <item>
      <title>Why You Should Be Using Tailscale in 2025</title>
      <dc:creator>subnet savy</dc:creator>
      <pubDate>Sun, 06 Jul 2025 03:34:09 +0000</pubDate>
      <link>https://forem.com/subnetsavy/why-you-should-be-using-tailscale-in-2025-3cml</link>
      <guid>https://forem.com/subnetsavy/why-you-should-be-using-tailscale-in-2025-3cml</guid>
      <description>&lt;p&gt;Tailscale is hands-down one of the easiest ways to create a secure mesh VPN. Whether you’re connecting your dev environments, homelab, or cloud workloads—it just works.&lt;/p&gt;

&lt;p&gt;✅ Why use Tailscale?&lt;/p&gt;

&lt;p&gt;Zero config: install &amp;amp; connect in minutes.&lt;/p&gt;

&lt;p&gt;Works behind NATs and firewalls.&lt;/p&gt;

&lt;p&gt;Access your private services from anywhere securely.&lt;/p&gt;

&lt;p&gt;Here’s how to start:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
Copy&lt;br&gt;
Edit&lt;br&gt;
curl -fsSL &lt;a href="https://tailscale.com/install.sh" rel="noopener noreferrer"&gt;https://tailscale.com/install.sh&lt;/a&gt; | sh&lt;br&gt;
sudo tailscale up&lt;br&gt;
🎉 You now have a private network between your devices.&lt;/p&gt;

&lt;p&gt;📖 Full walkthrough: &lt;a href="https://subnetsavy.com/wp-content/uploads/articles/tailscale-ssh-guide.html" rel="noopener noreferrer"&gt;https://subnetsavy.com/wp-content/uploads/articles/tailscale-ssh-guide.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tailscale</category>
      <category>networking</category>
      <category>security</category>
      <category>bash</category>
    </item>
    <item>
      <title>Kubernetes Networking at Home—Made Simple</title>
      <dc:creator>subnet savy</dc:creator>
      <pubDate>Sun, 06 Jul 2025 03:33:37 +0000</pubDate>
      <link>https://forem.com/subnetsavy/kubernetes-networking-at-home-made-simple-2oo9</link>
      <guid>https://forem.com/subnetsavy/kubernetes-networking-at-home-made-simple-2oo9</guid>
      <description>&lt;p&gt;Networking in Kubernetes can feel like black magic, especially in a home lab. But with the right tools, you can route traffic like a pro.&lt;/p&gt;

&lt;p&gt;✅ Key tools to use:&lt;/p&gt;

&lt;p&gt;MetalLB for load balancing in bare metal setups.&lt;/p&gt;

&lt;p&gt;Ingress Controllers (like NGINX) for managing HTTP(S) traffic.&lt;/p&gt;

&lt;p&gt;Tailscale for secure remote access without exposing your cluster.&lt;/p&gt;

&lt;p&gt;Here’s an example of setting up a simple ingress:&lt;/p&gt;

&lt;p&gt;yaml&lt;br&gt;
Copy&lt;br&gt;
Edit&lt;br&gt;
apiVersion: networking.k8s.io/v1&lt;br&gt;
kind: Ingress&lt;br&gt;
metadata:&lt;br&gt;
  name: example-ingress&lt;br&gt;
spec:&lt;br&gt;
  rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;host: myapp.local
http:
  paths:

&lt;ul&gt;
&lt;li&gt;path: /
pathType: Prefix
backend:
  service:
    name: my-service
    port:
      number: 80
📖 Full guide here: &lt;a href="https://subnetsavy.com/wp-content/uploads/articles/k8s-network-guide.html" rel="noopener noreferrer"&gt;https://subnetsavy.com/wp-content/uploads/articles/k8s-network-guide.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;📦 Title: Why You Should Be Using Tailscale in 2025&lt;br&gt;
Tailscale is hands-down one of the easiest ways to create a secure mesh VPN. Whether you’re connecting your dev environments, homelab, or cloud workloads—it just works.&lt;/p&gt;

&lt;p&gt;✅ Why use Tailscale?&lt;/p&gt;

&lt;p&gt;Zero config: install &amp;amp; connect in minutes.&lt;/p&gt;

&lt;p&gt;Works behind NATs and firewalls.&lt;/p&gt;

&lt;p&gt;Access your private services from anywhere securely.&lt;/p&gt;

&lt;p&gt;Here’s how to start:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
Copy&lt;br&gt;
Edit&lt;br&gt;
curl -fsSL &lt;a href="https://tailscale.com/install.sh" rel="noopener noreferrer"&gt;https://tailscale.com/install.sh&lt;/a&gt; | sh&lt;br&gt;
sudo tailscale up&lt;br&gt;
🎉 You now have a private network between your devices.&lt;/p&gt;

&lt;p&gt;📖 Full walkthrough: &lt;a href="https://subnetsavy.com/wp-content/uploads/articles/tailscale-ssh-guide.html" rel="noopener noreferrer"&gt;https://subnetsavy.com/wp-content/uploads/articles/tailscale-ssh-guide.html&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Secure Kubernetes External Access with ExternalDNS and cert-manager</title>
      <dc:creator>subnet savy</dc:creator>
      <pubDate>Sun, 06 Jul 2025 03:32:14 +0000</pubDate>
      <link>https://forem.com/subnetsavy/secure-kubernetes-external-access-with-externaldns-and-cert-manager-27f1</link>
      <guid>https://forem.com/subnetsavy/secure-kubernetes-external-access-with-externaldns-and-cert-manager-27f1</guid>
      <description>&lt;p&gt;Running Kubernetes at home or in the cloud? Exposing apps externally can be tricky—but ExternalDNS + cert-manager makes it simple.&lt;/p&gt;

&lt;p&gt;✅ What they do:&lt;/p&gt;

&lt;p&gt;ExternalDNS automatically manages DNS records for your services.&lt;/p&gt;

&lt;p&gt;cert-manager provisions SSL certificates with Let’s Encrypt.&lt;/p&gt;

&lt;p&gt;Here’s how easy it is:&lt;/p&gt;

&lt;p&gt;yaml&lt;br&gt;
Copy&lt;br&gt;
Edit&lt;br&gt;
apiVersion: cert-manager.io/v1&lt;br&gt;
kind: Certificate&lt;br&gt;
metadata:&lt;br&gt;
  name: my-app-cert&lt;br&gt;
spec:&lt;br&gt;
  dnsNames:&lt;br&gt;
    - "app.mydomain.com"&lt;br&gt;
  secretName: my-app-tls&lt;br&gt;
  issuerRef:&lt;br&gt;
    name: letsencrypt-prod&lt;br&gt;
    kind: ClusterIssuer&lt;br&gt;
🎉 Boom—your app is secured with HTTPS and has an updated DNS record.&lt;/p&gt;

&lt;p&gt;👉 Full guide here: &lt;a href="https://subnetsavy.com/wp-content/uploads/articles/externaldns-certmanager-setup.html" rel="noopener noreferrer"&gt;https://subnetsavy.com/wp-content/uploads/articles/externaldns-certmanager-setup.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>security</category>
      <category>devops</category>
      <category>networking</category>
    </item>
    <item>
      <title>Simplify Kubernetes Secrets Management</title>
      <dc:creator>subnet savy</dc:creator>
      <pubDate>Sun, 06 Jul 2025 03:31:44 +0000</pubDate>
      <link>https://forem.com/subnetsavy/simplify-kubernetes-secrets-management-31eh</link>
      <guid>https://forem.com/subnetsavy/simplify-kubernetes-secrets-management-31eh</guid>
      <description>&lt;p&gt;Kubernetes is powerful, but managing secrets like API keys and credentials can quickly get messy. If you’re still embedding secrets in your YAML files—stop! 😅&lt;/p&gt;

&lt;p&gt;✅ Better ways to manage secrets in Kubernetes:&lt;/p&gt;

&lt;p&gt;Use Kubernetes Secrets API with kubectl create secret.&lt;/p&gt;

&lt;p&gt;Integrate external vaults like HashiCorp Vault or SealedSecrets for encryption.&lt;/p&gt;

&lt;p&gt;Rotate secrets automatically with tools like External Secrets Operator.&lt;/p&gt;

&lt;p&gt;Here’s a quick example of creating a basic secret:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
Copy&lt;br&gt;
Edit&lt;br&gt;
kubectl create secret generic my-api-key \&lt;br&gt;
  --from-literal=apikey=1234567890&lt;br&gt;
Now you can mount or inject it into pods without exposing it in plain text.&lt;/p&gt;

&lt;p&gt;👉 Want a full walkthrough? Read here: &lt;a href="https://subnetsavy.com/wp-content/uploads/articles/k8s-secret-management.html" rel="noopener noreferrer"&gt;https://subnetsavy.com/wp-content/uploads/articles/k8s-secret-management.html&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Exposing Local Dev Apps Securely with Tailscale Funnel</title>
      <dc:creator>subnet savy</dc:creator>
      <pubDate>Sun, 06 Jul 2025 03:30:25 +0000</pubDate>
      <link>https://forem.com/subnetsavy/exposing-local-dev-apps-securely-with-tailscale-funnel-phi</link>
      <guid>https://forem.com/subnetsavy/exposing-local-dev-apps-securely-with-tailscale-funnel-phi</guid>
      <description>&lt;p&gt;If you’ve ever needed to share a local development service or dashboard with someone outside your network, you’ve probably turned to port forwarding or ngrok. But there’s a better way: Tailscale Funnel.&lt;/p&gt;

&lt;p&gt;Funnel lets you securely expose services running on your Tailscale-connected device to the public internet without opening firewall ports or setting up reverse proxies.&lt;/p&gt;

&lt;p&gt;✅ Why use Funnel?&lt;/p&gt;

&lt;p&gt;Share dev environments instantly.&lt;/p&gt;

&lt;p&gt;Built-in HTTPS and encryption.&lt;/p&gt;

&lt;p&gt;No VPN or static IP needed.&lt;/p&gt;

&lt;p&gt;Here’s a quick example:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
Copy&lt;br&gt;
Edit&lt;/p&gt;

&lt;h1&gt;
  
  
  Expose your local app running on port 3000
&lt;/h1&gt;

&lt;p&gt;tailscale funnel 3000 on&lt;br&gt;
Your app is now securely accessible at:&lt;br&gt;
&lt;a href="https://your-device-name.ts.net" rel="noopener noreferrer"&gt;https://your-device-name.ts.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔒 Traffic is encrypted end-to-end, and you can restrict access with ACLs.&lt;/p&gt;

&lt;p&gt;👉 Read the full guide here: &lt;a href="https://subnetsavy.com/wp-content/uploads/articles/tailscale-funnel-guide.html" rel="noopener noreferrer"&gt;https://subnetsavy.com/wp-content/uploads/articles/tailscale-funnel-guide.html&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How Helm Can Simplify Your Kubernetes Deployments — A Beginner’s Guide</title>
      <dc:creator>subnet savy</dc:creator>
      <pubDate>Wed, 25 Jun 2025 23:18:58 +0000</pubDate>
      <link>https://forem.com/subnetsavy/how-helm-can-simplify-your-kubernetes-deployments-a-beginners-guide-1jb2</link>
      <guid>https://forem.com/subnetsavy/how-helm-can-simplify-your-kubernetes-deployments-a-beginners-guide-1jb2</guid>
      <description>&lt;p&gt;If you’re just getting started with Kubernetes, you’ve probably felt overwhelmed by the sheer amount of YAML files and configs needed to deploy even a simple app. Managing deployments manually can quickly become a headache.&lt;/p&gt;

&lt;p&gt;Enter Helm — the Kubernetes package manager that makes your life way easier.&lt;/p&gt;

&lt;p&gt;Why Helm?&lt;/p&gt;

&lt;p&gt;Helm lets you bundle your Kubernetes manifests into reusable packages called charts. This means you can:&lt;br&gt;
    • Deploy apps with a single command&lt;br&gt;
    • Manage environment-specific configs with simple values.yaml files&lt;br&gt;
    • Upgrade or rollback your releases safely&lt;br&gt;
    • Share charts with your team or the community&lt;/p&gt;

&lt;p&gt;Quickstart with Helm&lt;br&gt;
    1.  Install Helm CLI — It’s straightforward and supports macOS, Linux, Windows.&lt;br&gt;
    2.  Find or create a chart — You can use popular community charts or build your own.&lt;br&gt;
    3.  Customize with values.yaml — Override defaults for your dev, staging, or prod environments.&lt;br&gt;
    4.  Deploy and manage — Use helm install, helm upgrade, and helm rollback commands for lifecycle management.&lt;/p&gt;

&lt;p&gt;Example commands:&lt;/p&gt;

&lt;p&gt;helm install myapp ./mychart -f myvalues.yaml&lt;br&gt;
helm upgrade myapp ./mychart -f myvalues.yaml&lt;br&gt;
helm rollback myapp 1&lt;/p&gt;

&lt;p&gt;Tips for Success&lt;br&gt;
    • Keep charts modular and well-documented&lt;br&gt;
    • Secure secrets with Helm plugins or external tools&lt;br&gt;
    • Integrate Helm commands into your CI/CD pipelines for automation&lt;br&gt;
    • Always test your charts locally before deploying to clusters&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Want to dive deeper? Check out my detailed step-by-step guide on how to deploy apps on Kubernetes with Helm where I walk through examples and common pitfalls.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;If you found this helpful, feel free to follow for more Kubernetes and DevOps tips!&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;h1&gt;
  
  
  Kubernetes #Helm #DevOps #CloudNative #CI/CD
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>How I Built a Kubernetes Cluster at Home (And Why You Should Too)</title>
      <dc:creator>subnet savy</dc:creator>
      <pubDate>Wed, 18 Jun 2025 19:19:05 +0000</pubDate>
      <link>https://forem.com/subnetsavy/how-i-built-a-kubernetes-cluster-at-home-and-why-you-should-too-5all</link>
      <guid>https://forem.com/subnetsavy/how-i-built-a-kubernetes-cluster-at-home-and-why-you-should-too-5all</guid>
      <description>&lt;p&gt;Want to run your own private cloud from your garage, office, or homelab? Here’s exactly how I built a production-grade Kubernetes cluster using Raspberry Pis, SSDs, and open source tools — and how you can too.&lt;/p&gt;

&lt;p&gt;🧰 The Gear I Used&lt;br&gt;
3x Raspberry Pi 4B (8GB recommended)&lt;br&gt;
3x SSDs (like the Crucial X8 with USB 3.0 adapters)&lt;br&gt;
1x Gigabit managed switch&lt;br&gt;
1x Router or Tailscale for remote access&lt;br&gt;
Ethernet cables, Pi cases with cooling, SD cards for boot&lt;br&gt;
🛠️ Flashing the Raspberry Pi OS&lt;br&gt;
Start with Raspberry Pi Imager. Choose the 64-bit Lite version of Raspberry Pi OS.&lt;/p&gt;

&lt;p&gt;Set a hostname (like k8s-master), enable SSH, and add Wi-Fi credentials (or plug into Ethernet). You can do this from the advanced settings (gear icon) in the imager tool.&lt;/p&gt;

&lt;p&gt;For headless setups, enable SSH by placing a blank file named ssh in the /boot directory after flashing.&lt;/p&gt;

&lt;p&gt;🔧 First Boot and Configuration&lt;br&gt;
Boot your Pi, then SSH into it using the hostname or IP address. Change the password, run full updates, and reboot.&lt;/p&gt;

&lt;p&gt;If you’re using DHCP, assign a static IP using /etc/dhcpcd.conf.&lt;/p&gt;

&lt;p&gt;You can also set the hostname with hostnamectl if you didn’t already during flashing.&lt;/p&gt;

&lt;p&gt;🚀 Installing Kubernetes (K3s)&lt;br&gt;
We’re using K3s — a lightweight Kubernetes distribution designed for low-power devices.&lt;/p&gt;

&lt;p&gt;Run the official K3s install script on the master node. It sets up your API server, scheduler, and controller manager in one binary.&lt;/p&gt;

&lt;p&gt;Verify your cluster by checking kubectl get nodes.&lt;/p&gt;

&lt;p&gt;To add workers, grab the token from the master node and run the K3s join command on each worker.&lt;/p&gt;

&lt;p&gt;⚙️ Install Helm&lt;br&gt;
Helm is the package manager for Kubernetes. Install it using the official install script and verify the installation.&lt;/p&gt;

&lt;p&gt;🌐 Add Load Balancing with MetalLB&lt;br&gt;
Kubernetes doesn’t expose services directly on bare metal. MetalLB solves this by assigning external IPs from your local LAN.&lt;/p&gt;

&lt;p&gt;First, enable strictARP in the kube-proxy configmap.&lt;/p&gt;

&lt;p&gt;Then apply the MetalLB manifests, and configure an IP address pool (e.g., 192.168.1.240–250). Add a Layer 2 advertisement so MetalLB can respond to ARP requests.&lt;/p&gt;

&lt;p&gt;🔐 Add Secure Remote Access with Tailscale&lt;br&gt;
Tailscale makes remote cluster access easy with encrypted, zero-config VPN. Install the Tailscale agent, authenticate, and your Pi cluster will appear in your Tailscale network instantly.&lt;/p&gt;

&lt;p&gt;Bonus: it works across NATs and firewalls.&lt;/p&gt;

&lt;p&gt;📈 Monitoring the Cluster&lt;br&gt;
Install Prometheus + Grafana using the kube-prometheus-stack Helm chart.&lt;/p&gt;

&lt;p&gt;Port-forward the Grafana service to access dashboards, or expose it via Ingress and secure it with Tailscale ACLs.&lt;/p&gt;

&lt;p&gt;Grafana provides beautiful dashboards for CPU, memory, pod health, and more — critical for long-term reliability.&lt;/p&gt;

&lt;p&gt;🧪 Common Problems I Faced&lt;br&gt;
Time sync errors prevented nodes from joining&lt;br&gt;
Tailscale required approval from the admin panel before traffic would route&lt;br&gt;
MetalLB wouldn’t assign IPs until strictARP was enabled&lt;br&gt;
Some Pis overheated under load — active cooling was a must&lt;br&gt;
Pods stuck in Pending? Often a resource issue — check node taints or available RAM&lt;br&gt;
📦 Affiliate Hardware I Actually Use&lt;br&gt;
Crucial X8 SSD&lt;br&gt;
TP-Link SG108 switch&lt;br&gt;
Argon Neo or FLIRC case&lt;br&gt;
Raspberry Pi 4B (8GB model)&lt;br&gt;
I’ve tested all of these personally in my cluster and recommend them without hesitation.&lt;/p&gt;

&lt;p&gt;🔁 What’s Next?&lt;br&gt;
If you want to:&lt;/p&gt;

&lt;p&gt;Self-host services like Pi-hole, Uptime Kuma, or Vaultwarden&lt;br&gt;
Learn GitOps with ArgoCD&lt;/p&gt;

&lt;p&gt;Practice real-world cloud skills&lt;br&gt;
Or build a private edge cloud…&lt;br&gt;
Then a home Kubernetes cluster is the best playground.&lt;/p&gt;

&lt;p&gt;You can download my printable Kubernetes Lab Checklist (with gear links and setup steps) free here:&lt;br&gt;
👉 👉 &lt;a href="https://subnetsavy.com/wp-content/uploads/articles/k8s-checklist.html" rel="noopener noreferrer"&gt;Download the Home Kubernetes Lab Checklist (Free PDF)&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I Built a Home Kubernetes Lab with Raspberry Pis — Here's Everything I Learned</title>
      <dc:creator>subnet savy</dc:creator>
      <pubDate>Tue, 03 Jun 2025 03:12:43 +0000</pubDate>
      <link>https://forem.com/subnetsavy/i-built-a-home-kubernetes-lab-with-raspberry-pis-heres-everything-i-learned-2o9m</link>
      <guid>https://forem.com/subnetsavy/i-built-a-home-kubernetes-lab-with-raspberry-pis-heres-everything-i-learned-2o9m</guid>
      <description>&lt;p&gt;Hey Devs 👋&lt;/p&gt;

&lt;p&gt;Over the past few months, I’ve gone down the home lab rabbit hole — and ended up building a fully functional Kubernetes cluster using Raspberry Pis, SSDs, open source tools, and a bunch of trial-and-error.&lt;/p&gt;

&lt;p&gt;I created SubnetSavy.com to share what I learned along the way. If you’ve ever wanted to run your own infrastructure from home (instead of renting it from AWS), this might be for you.&lt;/p&gt;

&lt;p&gt;What I cover:&lt;br&gt;
🖥️ Setting up Kubernetes on Raspberry Pi 4 and 5&lt;br&gt;
💾 Choosing the best SSDs and storage gear for long-term reliability&lt;br&gt;
🔐 Building a zero-trust network using Tailscale&lt;br&gt;
📦 Deploying apps with Helm and automating infra with Terraform&lt;br&gt;
📊 Monitoring your cluster with Grafana, Prometheus, and alerts&lt;br&gt;
🌐 Managing DNS, Load Balancing, Ingress, and ExternalDNS&lt;br&gt;
🚀 Hands-on gear reviews for networking, cooling, power, and more&lt;/p&gt;

&lt;p&gt;This isn't a "hello world" Kubernetes blog. It's focused on practical, tested guides — with affiliate-supported gear picks to help others build smarter.&lt;/p&gt;

&lt;p&gt;Check it out:&lt;br&gt;
➡️ SubnetSavy.com&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
