Closed sayboras closed 4 years ago
Is that the full kind config? Because the linked issue suggests that this involves using a nonstandard CNI in kind (calico).
Is that the full kind config? Because the linked issue suggests that this involves using a nonstandard CNI in kind (calico).
@BenTheElder It's the full configuration, I try my best to provide minimal configuration and avoid any additional dependecies. Let me know if you cannot replicate the issue.
The linked issue is mainly for my reference.
172.18.0.1:53
It seems CodeDNS has as upstream dns server 172.18.0.1, since CoreDNS is an IPv6 only pod it can´t reach it and fail.
If we dump the CoreDNS config we can see that it uses resolv.conf to obtain the upstream DNS servers
$ kubectl -n kube-system get configmap coredns -o yaml
apiVersion: v1
data:
Corefile: |
.:53 {
errors
health {
lameduck 5s
}
ready
log
kubernetes cluster.local lan in-addr.arpa ip6.arpa {
pods insecure
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf {
max_concurrent 1000
}
cache 30
reload
loadbalance
}
you should replace the forward line, editing the configmap, and using an IPv6 DNS server that CoreDNS can reach (2003::1 is an example)
forward . [2003::1]:53
@aojea appreciated for your time discussing on slack :tada:
I have continued checking this issue following your suggestion. I have performed the below steps and get it working.
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPv6Gateway}}{{end}}' kind-control-plane
fc00:f853:ccd:e793::1
forward [fc00:f853:ccd:e793::1]:5300
$ socat UDP6-RECVFROM:5300,fork UDP4-SENDTO:127.0.0.53:53
Now DNS lookup is working
$ kex dnsutils -- nslookup www.google.com
Server: fd00:10:96::a
Address: fd00:10:96::a#53
Non-authoritative answer:
Name: www.google.com
Address: 216.58.199.68
Name: www.google.com
Address: 2404:6800:4006:806::2004
Not sure if you are planning to make any changes in kind as such, otherwise, feel free to close this issue. Thanks again for your kind help @aojea @BenTheElder :tada:. Feel free to let me know if anything is required.
Just a quick note, outgoing traffic from pod is also failed now (e.g. curl www.google.com). Not sure if it's my ISP issue (no ipv6 support), or there is something else that I have missed.
Just a quick note, outgoing traffic from pod is also failed now (e.g. curl www.google.com). Not sure if it's my ISP issue (no ipv6 support), or there is something else that I have missed.
no ISP with ipv6 support no fun :) you can have a free ipv6 tunnel with hurricane electric if you want to use IPv6 Internet, there are plenty of tutorials , I can confirm that works well. Just an advice, managing dual stack environments is a nightmare, so start enabling the tunnel only in a few machines until you are comfortable to move it to the whole network ;)
I think we can close it Thanks /close
@aojea: Closing this issue.
@aojea thanks for your time and kind help :+1:
What happened: Unable to perform DNS lookup in ipv6 cluster.
PS: This might be a limitation of container runtime for ipv6, so it's kind of question, but I liked the bug kind's bug report template, so that I can provide all related informations.
What you expected to happen: DNS lookup should be working
How to reproduce it (as minimally and precisely as possible):
kubectl exec -i -t dnsutils -- nslookup www.google.com
Kind configuration
```yaml kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - role: worker networking: ipFamily: ipv6 podSubnet: "fd00:10:244::/64" serviceSubnet: "fd00:10:96::/112" ```DNS util pod
```yaml apiVersion: v1 kind: Pod metadata: name: dnsutils namespace: default spec: containers: - name: dnsutils image: gcr.io/kubernetes-e2e-test-images/dnsutils:1.3 command: - sleep - "3600" imagePullPolicy: IfNotPresent restartPolicy: Always ```Anything else we need to know?:
Please find below coredns logs
Environment:
kind version
): kind v0.9.0-alpha+edecdfee8878ac go1.15beta1 linux/amd64. The same behavior is happening for latest release version 0.8.1kubectl version
):docker info
):docker info
/etc/os-release
):