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:
/etc/hostname
/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>