Description
Hey there,
I've been inspired by your work of using your ansible playbooks to provision a K8S cluster with 4 RPis. I tried to get a cluster up and running as well using your scripts. (with the example config and without wifi)
The problem is that I cannot reach other pods or external servers from within a pod. (wanted to put the gitlab runner on there)
Using nslookup kubernetes.default
on hypriot/rpi-alpine:3.6
gives the following:
nslookup: can't resolve '(null)': Name does not resolve
Name: kubernetes.default
Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local
/etc/resolv.conf looks like this:
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local routerbfb8b0.com
options ndots:5
I found out that there's a known issue with alpine up to version 3.3 but I don't use any of these old versions. I tried it with hypriot/rpi-alpine:3.6
and resin/rpi-raspbian:jessie
and busybox.
https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#known-issues
I also used an upgrade weave(2.0.5) but that did not help as well. I couldn't try with flannel since your scripts are not 100% finished there. kube-dns logs does not show any errors.
Do you have any suggestions? I don't know where else to look.
Thank you very much!
EDIT:
I found out that internal names can be resolved. So I assume kube-dns is basically working but I cannot get external names to be resolved.
EDIT 2:
Seems like I cannot access the internet at all with the following images:
hypriot/rpi-alpine:3.6
resin/rpi-raspbian:jessie
busybox seems to only image which works.
I can work around this "limitation" by specifyinghostNetwork: true
but this is not something I want to prefer as a solution. I see that the pod is then getting the node ip and is able to go through my router. :/ Also by using that I cannot resolve K8S related services anymore.
Any ideas how to get around this setting?