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 PubSub 中提取消息不起作用 - 权限被拒绝