从 pod 到服务子网的 GKE VPC 原生集群网络

从 pod 到服务子网的 GKE VPC 原生集群网络

因此,我创建了一个 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。它不起作用。

相关内容