【问题标题】: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 映射。

标签: google-compute-engine


【解决方案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 条目的完全替代品,但在某些情况下它们可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-22
      • 2014-11-12
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      • 2015-09-03
      • 1970-01-01
      • 2018-10-07
      相关资源
      最近更新 更多