我对 Google Cloud Platform 和 K8s 都很陌生。我在 GCP 中启动了 Kubernetes 集群,并选择 europe-north1 作为区域(europe-north1-a 作为区域)。
当我尝试在此集群上运行我的应用程序时,它失败了,因为它期望应用程序在欧盟地区运行。我添加了 IP 和地理检查(使用 GeoLite 数据库(https://dev.maxmind.com/geoip/legacy/geolite/) 和 AWS IP 检查工具 (http://checkip.amazonaws.com/)) 到我的申请中,他们告诉我主机位于美国。
我是否错过了一些 GCP/K8s 配置选项,或者这是因为 europe-north1 区域仍然很新,并且 IP 地址无法正确显示它们位于欧盟?在这种情况下,我应该将这个问题直接提交给 Google?
答案1
谨慎是好事,但大多数情况下,你可以相信 GCP、Azure 等大型云提供商会将他们的实例放在他们告诉你的位置。
Geo-IP 匹配服务并不完美。据我所知,这里的问题在于您使用的 Geo-IP 匹配服务无法真正知道 Google 动态 IP 地址在重新分配时的位置。
这些服务使用各种方法的组合来提供地理 IP 匹配,有时它们从 whois 记录中获取地址,有时它们使用延迟来三角测量大致位置。这在很大程度上可以让你大致了解位置,但对于 GCP 的动态地址池而言,这些地址经常被重新分配给新位置的新虚拟机,它们根本无法跟上。
我尝试广泛地重现您使用虚拟机而不是 Kubernetes 集群时遇到的情况。我在欧洲和美国都启动了一个实例。进行地理 IP 匹配时,两个实例都显示在美国,但当我 ping 两个地址时(我从美国 ping),延迟肯定支持虚拟机位于它们应该在的位置。