Cloud Native

Kubernetes on Raspberry Pi II – Networking

October 10, 2016


Marc Boorshtein

After my last blog, I had thought I had this pretty much working.  Not really.  Once I got the api server and minion up and running I still needed to get networking running.  The suggestion in the kubeadm install instructions says to use Weave.  I know there are several networking plugins for Kubernetes, and I’ll be honest I don’t really know or understand the benefits to them.  What I did quickly realize was that Weave didn’t have any images for arm, everything was x86.  Once again Lucas Käldström (@kubernetesonarm) was able to help.  He pointed me to a yaml that would deploy a flannel compiled for arm assuming you replaced all the references to amd64 with arm.  This got flannel running, but now working.  The gory details are in a ticket I updated on flannel in GitHub.

To get this figured out I went through a few steps:

  1. The api server continued to complain that eth0 didn’t exist
  2. Since these are pi 3, they had wireless but I didn’t want wireless

Ubuntu MATE was naming network interfaces based on the card’s MAC address instead of eth0.  I don’t know if this was a red herring or not, but I figured I’d rather make sure so I followed these instructions to get it renamed to eth0.  I then followed these instructions to get wlan0 disabled.  Finally, I followed the instructions in the above GitHub ticket and everything was up and running.

A quick note about running this on Raspbian Jessie.  I couldn’t get it to work.  I thought it would, but when kubeadm started it seemed to be unable to communicate with Docker 1.12.1.

Thanks again Lucas for your help!  Now to get Unison running on arm…

Related Posts