Google 是不是会为 Google Compute Engine 实例发布 DNS 记录?

Posted

技术标签:

【中文标题】Google 是不是会为 Google Compute Engine 实例发布 DNS 记录?【英文标题】:Does Google publish a DNS record for Google Compute Engine instances?Google 是否会为 Google Compute Engine 实例发布 DNS 记录? 【发布时间】:2014-09-18 21:23:01 【问题描述】:

我在 Google Compute Engine 上运行一个偶尔启动的服务器。我不想为静态 IP 地址付费,而只是在实例运行时使用临时 IP 地址。 GCE 是否会向 DNS 发布从实例名称到我可以使用的临时 IP 或 CNAME 的映射?例如。 instancename.projectname.googlecompute.com 之类的 TTL 足够低,可以在启动后很快解析为指向我的实例的 IP 地址?

我在文档中找不到类似的东西,但如果它不存在,我会感到非常惊讶。

【问题讨论】:

your-ip.bc.googleusercontent.com,前 178.125.96.3.bc.googleusercontent.com 谢谢,这很好,但它并不比 IP 地址好。我希望在我的实例更改 IP 地址时保持不变,因为我不想为静态 IP 付费。看起来唯一的方法是让实例上的软件在启动时注册动态 DNS 映射。 【参考方案1】:

是的,通过 DNS 名称访问您的实例的唯一方法是自己创建一个 DNS 条目,例如使用指向静态 IP 地址的静态 A 记录或指向您的临时地址的动态 DNS 条目(即我为我的实例做什么)。

Compute Engine 不像 App 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 访问任何主机都会变得很方便

Host *.googl
  ProxyCommand nc `get_gce_ip "%h"` %p

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

【讨论】:

以上是关于Google 是不是会为 Google Compute Engine 实例发布 DNS 记录?的主要内容,如果未能解决你的问题,请参考以下文章

286 亿元!败了的 Google 是否会为 Android 交最贵罚单?

Google 会为它收到的每个请求打开多少个套接字?

从 Google PubSub 中提取消息不起作用 - 权限被拒绝

Google bigquery 数据传输服务标头问题

如何让 Google Test 检测 Linux 上的线程数?

Google Chart打印vAxis格式选择器以及编号