Flannel: Please include instructions for installing on ARM

Created on 6 Apr 2017  路  4Comments  路  Source: coreos/flannel

aredocumentation aremultiarch-support

Most helpful comment

Better yet (and what I do locally) - extend kube-flannel.yaml to include a daemonset for each architecture, with the appropriate beta.kubernetes.io/arch=$arch nodeSelector. That way your cluster automatically installs the right flannel daemon, even across multiple architectures (I have mixed arm+amd64).

The bit that prevents this being "easy" on arm currently is that the quay.io/coreos/flannel-cni image only exists for amd64, and the quay.io/coreos/flannel image doesn't actually include the cni executable - making the basic "cp flannel /opt/cni/bin/" step harder than it needs to be on non-amd64. I reported this as https://github.com/coreos/flannel-cni/issues/10 but no action yet.

All 4 comments

I believe all this issue asks is for the following to be added to the Flannel instructions (so that it can be removed from "kubeadm is multi-platform" on https://kubernetes.io/docs/getting-started-guides/kubeadm/)

Installing on ARM
Installing flannel on ARM requires that you customize the curl command, depending on your platform.

export ARCH=amd64
curl -sSL "https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml?raw=true" | sed "s/amd64/${ARCH}/g" | kubectl create -f -

Replace ARCH=amd64 with ARCH=arm or ARCH=arm64 depending on the platform you鈥檙e running on. Note that the Raspberry Pi 3 is in ARM 32-bit mode, so for RPi 3 you should set ARCH to arm, not arm64.

@tomdee should I create a PR for this addition to the running.md doc?

Better yet (and what I do locally) - extend kube-flannel.yaml to include a daemonset for each architecture, with the appropriate beta.kubernetes.io/arch=$arch nodeSelector. That way your cluster automatically installs the right flannel daemon, even across multiple architectures (I have mixed arm+amd64).

The bit that prevents this being "easy" on arm currently is that the quay.io/coreos/flannel-cni image only exists for amd64, and the quay.io/coreos/flannel image doesn't actually include the cni executable - making the basic "cp flannel /opt/cni/bin/" step harder than it needs to be on non-amd64. I reported this as https://github.com/coreos/flannel-cni/issues/10 but no action yet.

Another +1 here鈥攊t was totally non-obvious why applying the default kube-flannel.yml wasn't working on my Raspberry Pis, until a bunch of searching got me to this issue (all I had to go on was the errors below from kubelet).

May 24 21:34:19 kube1.pidramble.com kubelet[10218]: W0524 21:34:19.036909   10218 cni.go:171] Unable to update cni config: No networks found in /etc/cni/net.d
May 24 21:34:19 kube1.pidramble.com kubelet[10218]: E0524 21:34:19.037327   10218 kubelet.go:2125] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Was this page helpful?
0 / 5 - 0 ratings