因此,我创建了一个 VPC 原生 GKE 集群。我的 Pod 地址范围是10.17.0.0/16
,我的 Service 地址范围是10.16.1.0/24
。
我无法从集群上的 pod 解析 google.internal dns 名称。这似乎是由于我无法从 pod 子网访问服务子网造成的:
root@mypod-0:/# ifconfig|grep eth0 -A 1
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
inet 10.17.2.40 netmask 255.255.255.0 broadcast 0.0.0.0
root@mypod-0:/# head -n 1 /etc/resolv.conf
nameserver 10.16.1.10
root@mypod-0:/# ping -c 1 -W 1 10.16.1.10
PING 10.16.1.10 (10.16.1.10) 56(84) bytes of data.
--- 10.16.1.10 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
root@mypod-0:/#
我有一条允许所有来源的防火墙规则10.0.0.0/8
。我这里遗漏了什么?
答案1
您应该遵循以下所述的 DNS 规则:
https://support.dnsimple.com/articles/differences-between-a-cname-alias-url/
https://www.linode.com/docs/networking/dns/dns-records-an-introduction/
https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
这表示如果 DNS 服务名称是 10.16.1.0/24,那么 pod 应该具有 IP 10.16.1.1、10.16.1.2……
您使用 IP 10.17.0.0/16。它不起作用。