【问题标题】:Migrating App Engine use Google Cloud Load Balancer cause ~1hr of downtime使用 Google Cloud Load Balancer 迁移 App Engine 会导致约 1 小时的停机时间
【发布时间】:2021-09-23 21:28:28
【问题描述】:

概览

我在 App Engine 上拥有由 Google 提供的自定义域和 SSL 证书的实例,但现在我需要在其前面放置一个 Google Cloud Load Balancer。

我按照此处的说明进行操作(针对 App Engine 而不是 Cloud Run 进行了调整): https://cloud.google.com/load-balancing/docs/https/setting-up-https-serverless

我先执行了该指南中的步骤,然后在 GoDaddy 中更新我的 DNS 记录以指向负载均衡器的 IP。

问题

问题是,在我更新我的 GoDaddy DNS 记录以指向负载均衡器的 IP 之后,我花了将近一个小时才再次可以访问。尝试通过浏览器或代码访问该站点时,我遇到了 SSL 错误。

配置 SSL 证书

核心问题似乎是负载均衡器的 SSL 证书被困在PROVISIONING 状态,而域被困在FAILED_NOT_VISIBLE 状态,文档说:

域的 DNS 记录无法解析为 Google Cloud 负载平衡器的 IP 地址。要解决此问题,请更新 DNS A/AAAA 记录以指向您的负载均衡器的 IP 地址。

https://cloud.google.com/load-balancing/docs/ssl-certificates/troubleshooting#domain-status

这些文档是这么说PROVISIONING的:

Google Cloud 正在与证书颁发机构合作颁发 证书。配置 Google 管理的证书可能会占用 到 60 分钟

https://cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs#verify-target-proxy

我能做些什么来避免/减少这一小时的停机时间吗?

我仍然需要对我的生产项目执行此操作。也许如果我切换步骤的顺序(甚至在创建 SSL 证书之前将 DNS 记录指向 IP)?

如果我可以在更新 DNS 记录以指向负载均衡器的 IP 之前获取 SSL 证书似乎会很好,但更新 DNS 似乎是 SSL 证书启动的先决条件。

这很有趣,因为我已经通过 App Engine 自定义域设置从谷歌获得了这些域的 SSL 证书。我希望这些可以被重用于负载均衡器。

https://cloud.google.com/appengine/docs/standard/python/securing-custom-domains-with-ssl#verify_a_managed_certificate_has_been_provisioned

【问题讨论】:

    标签: google-app-engine google-cloud-platform dns google-cloud-load-balancer google-cloud-http-load-balancer


    【解决方案1】:

    您是创建了新的 DNS 资源记录还是更改了现有的记录?

    如果您在创建资源记录之前尝试解析它,DNS 服务器将返回 NXDOMAIN,这称为 否定响应。否定响应由 DNS 解析器缓存。

    如果您更改了现有资源记录,那么 TTL 是多少?

    DNS 解析器使用各种策略来决定缓存 DNS 资源记录的时间。一个因素是 TTL。

    首先创建/更新 DNS 资源记录

    通过首先创建 DNS 资源记录,验证尝试时不会返回 NXDOMAIN,这将减少您必须等待清除否定响应缓存的时间。您域的权威 DNS 服务器通常是两到四台服务器。创建新资源记录时,服务器需要时间来创建 SLAVES 并将其与 MASTER 同步。这个时间通常只有一两分钟。

    刷新公共 Google DNS 服务器

    如果您的 DNS 资源记录过时(已更改)且 TTL 值较长,请刷新 Google 公共 DNS 服务器。此操作不是即时操作,请计划等待五分钟以完成操作。

    Google: Flush Cache

    Cloudflare: Flush Cache

    我可以做些什么来避免/尽量减少这一小时的停机时间?

    您不能直接更改配置时间。如果您遵循以上几点,则置备时间将减少。根据我的经验,SSL 证书配置通常需要 10 分钟。

    Google 负载平衡器在进行更改后需要时间进行更新。这个时间会有所不同,但通常是五到十分钟。这次是在证书配置之外的时间。您的网站在此期间可能不可用。

    DNS 服务器更改不是即时的。您的域的 DNS 服务器需要时间来更新,Internet 上的 DNS 解析器缓存资源记录、客户端系统缓存记录等。在更改 DNS 服务器之前制定计划。更改可能需要 24 到 72 小时才能在全球传播。

    【讨论】:

    • 你是对的。我能够将停机时间减少到 5-10 分钟。我这次做的事件顺序是 1:为我的负载均衡器生成静态 IP,但不要执行负载均衡器的其余设置步骤,2:更新 DNS 记录以指向该新 ​​IP,3:刷新DNS 缓存,4:完成其余的负载均衡器设置步骤,包括创建新的 SSL 证书。我在我的另一个沙箱上进行了尝试。我将在下周的骄傲拍卖会上尝试这样做。
    猜你喜欢
    • 2018-12-19
    • 2021-04-13
    • 1970-01-01
    • 2021-07-30
    • 2021-04-29
    • 2020-08-03
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多