k3s is a new Kubernetes platform by Rancher Labs focused on reducing the footprint of Kubernetes and allowing it to run on the edge. I wanted to test it out using the Odroid-MC1 cluster with its 32 cores and 8GB of RAM total.
To configure the devices I started with the example MrDreamBot SD card image for the Odroid-MC1 which has docker preconfigured. The only extra steps I had to perform were:
- Expand the filesystem (I'm using 256G and 128G microSD cards) using gparted
- Configure the devices to have unique hostnames by editing
- Configure the devices to have static IP addresses by editing
I then deployed 32-bit arm version of OpenFaaS using the "Deploy OpenFaas" section of Alex Ellis' blog post about kubernetes on Raspberry Pi. After that I was able to access OpenFaaS on http://10.1.10.244:31112 (based on a kubernetes node IP address).
To view all of the pods and which nodes they are running on, execute:
k3s kubectl get po -o wide --all-namespaces and you should see something similar to the following (I named my MC1's mc1, mc2, mc3, and mc4)
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system coredns-7748f7f6df-vdm8k 1/1 Running 0 45m 10.42.0.2 mc4 <none> <none> kube-system helm-install-traefik-qpdxv 0/1 Completed 0 45m 10.42.0.3 mc4 <none> <none> kube-system svclb-traefik-6cb6888669-4ckx7 2/2 Running 0 44m 10.42.0.4 mc4 <none> <none> kube-system traefik-dcd66ffd7-9q8hc 1/1 Running 0 44m 10.42.0.5 mc4 <none> <none> openfaas-fn nodeinfo-5d7fc6cbf9-tzphh 1/1 Running 0 5m2s 10.42.2.15 mc2 <none> <none> openfaas-fn nslookup-5fccbbd75f-xxgpg 1/1 Running 0 3m5s 10.42.3.18 mc3 <none> <none> openfaas alertmanager-c6c9696c4-xsm52 1/1 Running 0 6m24s 10.42.3.15 mc3 <none> <none> openfaas gateway-dfdff8c4d-vdrgw 2/2 Running 0 6m23s 10.42.3.17 mc3 <none> <none> openfaas nats-765f98bd59-gfbrr 1/1 Running 0 6m24s 10.42.1.17 mc1 <none> <none> openfaas prometheus-84cfb5cdc7-v9xld 1/1 Running 0 6m24s 10.42.3.16 mc3 <none> <none> openfaas queue-worker-86df6f8747-z8sdb 1/1 Running 0 6m24s 10.42.1.18 mc1 <none> <none>