谷歌是否为谷歌计算引擎实例发布DNS记录?

7
我正在Google Compute Engine上运行一个偶尔会停机的服务器。我不想支付静态IP地址的费用,只想在实例运行时利用临时IP地址。GCE是否会将实例名称映射到临时IP并发布到DNS中,以便我可以使用或CNAME?例如,类似于instancename.projectname.googlecompute.com,TTL足够低,可以在实例启动后很快解析为指向我的实例的IP地址?
我在文档中找不到这样的内容,但如果它不存在,这对我来说非常令人惊讶。

你的IP地址是bc.googleusercontent.com,例如178.125.96.3.bc.googleusercontent.com。 - Marilu
2
谢谢,这很好,但它并不比IP地址更好。我希望有些东西能够保持不变,即使我的实例更改了IP地址,因为我不想支付静态IP的费用。看起来唯一的方法是在实例上安装软件,在启动时注册动态DNS映射。 - Tim Dierks
2个回答

3
是的,通过DNS名称访问您的实例的唯一方法是创建自己的DNS条目,例如使用指向静态IP地址的静态A记录或指向您的临时地址的动态DNS条目(这是我为我的实例所做的)。
与App Engine不同,Compute Engine不提供预定义的主机名指向app_name.appspot.com。
我的DNS提供商freedns.afraid.org使得DDNS非常简单。对于要命名的主机,创建一个静态A记录,然后点击DDNS链接,它会给出一个wget或curl命令行,从您的VM实例上的cron作业运行。
但也有很多其他DNS提供商可以做类似的事情。

2

鉴于实际问题的答案是否定的,对于那些仅需通过脚本获取ip地址而不需要手动查找的人来说,这个答案可能仍然有所帮助。

如果已经安装并设置了gcloud命令,则可以使用一长串参数列表输出正在运行的实例的ip地址。为了方便地显示当前分配的地址,请将以下函数添加到您的shell初始化文件中:

get_gce_ip()
{
  local instance="${1%%.*}"
  gcloud compute instances list --filter="$instance" \
      --format='value(networkInterfaces[0].accessConfigs[0].natIP)'
}

在这个功能存在的情况下,只需在 .ssh/config 中添加这两行代码,即可方便地通过 ssh instancename.googl 访问任何主机。请注意保留html标签。
Host *.googl
  ProxyCommand nc `get_gce_ip "%h"` %p

显然,这些不能完全替代DNS条目,但在某些情况下可能会有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接