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:

  1. Expand the filesystem (I'm using 256G and 128G microSD cards) using gparted
  2. Configure the devices to have unique hostnames by editing /etc/hostname
  3. Configure the devices to have static IP addresses by editing /etc/network/interfaces

Once the base configuration was done I simply had to download the latest release of the armhf version of k3s and run the quick start commands listed on the k3s landing page.

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>