作成したpodが外部の名前を引こうとした際に出力されるメッセージ
/ # nslookup google.com nslookup: can't resolve '(null)': Name does not resolve nslookup: can't resolve 'kubernetes.default': Try again / # ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=113 time=10.217 ms 64 bytes from 8.8.8.8: seq=1 ttl=113 time=9.638 ms
pingは通るのにって言うケースで見たいのは以下。resolve.conf。ここで指定しているのはkube-dnsであって外部の名前を解決するようのものでは無いので名前解決は失敗する
/ # cat /etc/resolv.conf nameserver 10.96.0.10 search default.svc.cluster.local svc.cluster.local cluster.local options ndots:5 (⎈ |kubernetes-admin@kubernetes:default) [root@k8s-master ~]# kubectl get svc -A -l k8s-app=kube-dns NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 26h
解決方法
そのPodに対するDNSサーバーとして使われるIPアドレスをmanifestに書いてあげれば解決する。
dnsPolicy: "None" dnsConfig: nameservers: - 8.8.8.8