Kubernetes on Raspberry Pi - DNS pod pending

4/10/2018

I am setting up my Kubernetes cluster using three B/ B-plus Raspberry Pi. and following Alex's blog[very useful resource]: https://gist.github.com/alexellis/fdbc90de7691a1b9edb545c17da2d975

I find my master's CPU shooting up to make the master pi almost unresponsive. Rebooting helped. My init command:

sudo kubeadm init --token-ttl=0 --apiserver-advertise-address=<internal master ip>

I installed weave using:

kubectl apply -f \
 "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

Now I see:

dns pod in pending state nodes not ready

Not sure what is causing it.

My static IP set up is done. I am using my home router as the router for the cluster. Skipped wired networking and connected through wifi

enter image description here

-- rray
kubernetes
networking
weave

2 Answers

4/10/2018

The fact that the network you have chosen is in STATUS ContainerCreating is causing kube-dns to be in a pending state; it needs the network.

So the next step is to figure out what is preventing those containers from creating. Look in docker and kubelet logs to see if there are any error messages specifically about those containers.

-- Bryan
Source: StackOverflow

4/11/2018

I've had a similar issue, I've used ASUS Tinker board instead of RPi but it's ARM architecture as well, and I also used Weave. The reason why kube-dns is not coming up is because Weave pods were didn't start properly. You should take a look at why they didn't come up - definitely check the logs on weave pod (note: there are two containers in this pod, AFAIR weave container is the one you need to check logs for).

In my case the problem was that each of my boards had the same machine id, and Weave uses machine id to generate a MAC address for their virtual interface on each of the nodes. If it turns to be the machine ID issue, Look here to see how I fixed it.

-- kars7e
Source: StackOverflow