Skip to content

Instantly share code, notes, and snippets.

@alexellis
Last active September 4, 2022 10:27
Show Gist options
  • Save alexellis/09b708a8ddeeb1aa07ec276cd8ab228a to your computer and use it in GitHub Desktop.
Save alexellis/09b708a8ddeeb1aa07ec276cd8ab228a to your computer and use it in GitHub Desktop.
Multi-master / HA k3s for my Raspberry Pi cluster
#!/bin/bash
set -e
CH=latest
echo Installing Server 1
k3sup install --user pi --ip 192.168.2.147 \
--k3s-channel $CH \
--cluster \
--print-command \
--skip-install
echo Installing Server 2
k3sup join --user pi --ip 192.168.2.141 --server-ip 192.168.2.147 \
--k3s-channel $CH \
--server \
--print-command
echo Installing Server 3
k3sup join --user pi --ip 192.168.2.123 --server-ip 192.168.2.147 \
--k3s-channel $CH \
--server \
--print-command
echo Installing Agent 1
k3sup join --user pi --ip 192.168.2.129 --server-ip 192.168.2.147 \
--k3s-channel $CH \
--print-command
# More at https://k3sup.dev
# Install cert-manager
arkade install cert-manager
# Install OpenFaaS
arkade install openfaas
# Install inlets-operator
arkade install inlets-operator --provider digitalocean \
--region lon1 --license-file ~/LICENSE \
--token-file ~/Downloads/do-access-token
# Get the public IP
kubectl get svc -n kube-system -w
# Create a DNS A record for that IP
# Generate an Ingress record for OpenFaaS
arkade install openfaas-ingress --ingress-class traefik --email [email protected] --domain kubecon.k3sup.dev
# Log in to openfaas
faas-cli login -g https://kubecon.k3sup.dev
# Deploy a function
faas-cli store deploy --platform armhf nodeinfo -g https://kubecon.k3sup.dev
# Invoke the function
curl https://kubecon.k3sup.dev/function/nodeinfo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment