更改没有传播时间的 Cloud DNS IP(资源记录类型 A)

Changing a Cloud DNS IP (Resource Record Type A) with no propagation time

我有一个安装了 istio 的 GKE 集群。 Istio ingress gateway 自动创建一个带有 IP 的负载均衡器。

我将此 IP 放入云 DNS 中,如下图所示(具有隐藏 DNS 名称的假 IP)。一切正常,我可以使用 URL.

访问我的集群

我知道如果我需要按照文档中的描述更改 IP,我可以减少 TTL 时间来尝试减少传播时间。

Propagation of changes

Changes are propagated in two parts. First, the change that you send through the API or command-line tool must be pushed to Cloud DNS's authoritative DNS servers. Second, DNS resolvers must pick up this change when their cache of the records expires.

The DNS resolver's cache is controlled by the time-to-live (TTL) value that you set for your records, which is specified in seconds. For example, if you set a TTL value of 86400 (the number of seconds in 24 hours), the DNS resolvers are instructed to cache the records for 24 hours. Some DNS resolvers ignore the TTL value or use their own values that can delay the full propagation of records.

If you are planning for a change to services that requires a narrow window, you might want to change the TTL to a shorter value prior to making your change. This approach can help reduce the caching window and ensure a quicker change to your new record settings. After the change, you can change the value back to its previous TTL value to reduce load on the DNS resolvers.

但是如您所见,此解决方案并不可靠,因为某些 DNS 解析器无法遵循我的 TTL。 有什么办法可以将这个传播时间减少到零吗?我尝试创建负载均衡器和转发规则,但没有成功。

您可以影响传播时间的唯一方法是您所在区域的 TTL 值, 因此,请随意将您的区域的 TTL 设置为 Google Cloud DNS 允许的最小值。但请记住,您无法强制 Internet 上的所有 DNS 服务器以您想要的速度传播更改,因为其中许多配置为覆盖您指定的 TTL 设置,如其描述的那样 here.

作为可能的解决方案,如果适用于您的用例,您可以尝试保留静态 IP 地址并提前设置 DNS 记录,如 documentation 中所述。