2 min read

tailk3scale — mesh vpn for IoT run on IoT

Table of Contents

stakeholders


parts requests

  • 3 raspberry pi 3b+/4/zero
  • k3s - lightweight k8s for IoT/ARM
  • tailscale - software defined mesh VPN with private DNS built in

architecture


cluster initialization

download and install

curl -sfL https://get.k3s.io | sh -
# Check for Ready node, 
# takes maybe 30 seconds
k3s kubectl get node

setup nodes

K3S_TOKEN=SECRET k3s server --server https://masters-up
â„šī¸

Source: K3s HA Installation Guide


plug A into B

  • Tailscale is available as a binary for Raspbian, but we need to containerize it for k8s.
  • Two options:
# Raspbian Buster (for Raspberry Pi)

# Add Tailscale's GPG key
curl https://pkgs.tailscale.com/unstable/raspbian/buster.gpg | sudo apt-key add -

# Add the tailscale repository
curl https://pkgs.tailscale.com/unstable/raspbian/buster.list | sudo tee /etc/apt/sources.list.d/tailscale.list

# Install Tailscale
sudo apt-get update && sudo apt-get install tailscale

# Start Tailscale!
sudo tailscale up

assemble


y tho

Learn & POC:

  • Lightweight k8s
  • Mesh VPN to turn a home machine into a jump server
  • Turn iPad Pro into a thin client
  • Software-defined networks
  • Hardware maintenance
  • Evaluate ease of automating cluster management