如何获取 GCE 实例的 DNS 名称

问题描述 投票:0回答:3

我有一个唯一标识的 Google Compute Engine 实例:

name: updateservice
zone: us-central1-a
project: myproject

有没有办法通过 DNS 名称访问实例?否则,我每次都需要在 Cloud SQL 中将其 IP 列入白名单,因为它会在重新启动时发生变化。

google-cloud-platform networking google-compute-engine google-cloud-networking
3个回答
4
投票

Compute Engine 实例在 VPC 内具有私有 DNS 名称,但没有公共 DNS 名称。如果您需要公共 DNS 名称,则必须在 DNS 服务器上为实例配置 DNS 资源记录。

否则我每次都需要在 Cloud SQL 中将其 IP 列入白名单,因为它 重新启动后会发生变化。

Cloud SQL 有两种解决方案:

  1. 为 Compute Engine 实例分配静态 IP 地址。 链接

  2. 在 Compute Engine 实例上部署 Cloud SQL Auth 代理。 链接

方法#2是推荐的方法,因为IP地址不需要列入白名单,并且身份验证是加密的。


1
投票

如果您通过 SSH 连接到虚拟机并运行命令

hostname -A
,它将显示虚拟机的 内部 DNS

从本地网络,您可以通过设置 Cloud VPN 访问/ping 虚拟机的内部 DNS。


0
投票

我也有类似的用例,但用于在 VPC 计算实例之间工作。

正如 @salvinjr 提到的,从计算实例执行

hostname -A
,可以为您提供计算实例的内部 dns 名称

为了

name: updateservice
zone: us-central1-a
project: myproject

它可能看起来像这样

updateservice
.us-central1-a.c.
myproject
.内部

现在,我可以

ping
ssh
到其他虚拟机,而无需 IP。

© www.soinside.com 2019 - 2024. All rights reserved.