迁移 App Engine 使用 Google Cloud Load Balancer 导致约 1 小时的停机时间
Migrating App Engine use Google Cloud Load Balancer cause ~1hr of downtime
-
dns
-
google-app-engine
-
google-cloud-platform
-
google-cloud-load-balancer
-
google-cloud-http-load-balancer
概览
我在 App Engine 上有一个实例,带有 Google 提供的自定义域和 SSL 证书,但现在我需要在它前面放置一个 Google 云负载均衡器。
我按照此处的说明进行操作(针对 App Engine 而不是 Cloud 运行 进行了调整):
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
状态,文档说:
The domain's DNS record doesn't resolve to the IP address of the Google Cloud load balancer. To resolve this issue, update the DNS A/AAAA records to point to your load balancer's IP address.
https://cloud.google.com/load-balancing/docs/ssl-certificates/troubleshooting#domain-status
这些文档是这样说的 PROVISIONING
:
Google Cloud is working with the Certificate Authority to issue the
certificate. Provisioning a Google-managed certificate might take up
to 60 minutes
对于avoid/minimize这一小时的停机时间,我能做些什么吗?
我仍然需要对我的生产项目执行此操作。也许如果我改变步骤的顺序(甚至在创建 SSL 证书之前将 DNS 记录指向 IP)?
如果我能在更新 DNS 记录以指向负载均衡器的 IP 之前提供 SSL 证书似乎没问题,但更新 DNS 似乎是 SSL 证书甚至开始。
这很有趣,因为我已经通过 App Engine 自定义域设置从 google 获得了这些域的 SSL 证书。我希望这些可以重新用于负载均衡器。
您是创建了新的 DNS 资源记录还是更改了现有的?
如果您在创建资源记录之前尝试解析它,DNS 服务器将 return NXDOMAIN,这称为 否定响应。 DNS 解析器缓存否定响应。
如果您更改了现有资源记录,TTL 是多少?
DNS 解析器使用各种策略来决定将 DNS 资源记录缓存多长时间。一个因素是 TTL。
Create/update先记录DNS资源
通过首先创建 DNS 资源记录,NXDOMAIN 将不会在验证尝试时被 returned,这将减少您必须等待清除否定响应缓存的时间。您所在域的权威 DNS 服务器通常有两到四台服务器。创建新的资源记录时,服务器需要时间来创建 SLAVES 并将其与 MASTER 同步。这个时间通常只有一两分钟。
刷新 public Google DNS 服务器
如果您有具有长 TTL 值的陈旧(已更改)DNS 资源记录,请刷新 Google public DNS 服务器。此操作不是即时的,计划等待五分钟以便操作完成。
对于avoid/minimize这一小时的停机时间,我能做些什么吗?
您不能直接更改配置时间。如果您遵循以上几点,配置时间将会减少。根据我的经验,SSL 证书配置通常需要十分钟。
Google 负载均衡器在进行更改后需要时间进行更新。这个时间会有所不同,但通常是五到十分钟。这次是在证书供应之外的时间。您的网站在此期间可能不可用。
DNS 服务器更改不是即时的。您域的 DNS 服务器需要时间来更新,Internet 上的 DNS 解析器缓存资源记录、客户端系统缓存记录等。在更改 DNS 服务器之前制定计划。更改可能需要 24 到 72 小时才能在全球传播。
dns
google-app-engine
google-cloud-platform
google-cloud-load-balancer
google-cloud-http-load-balancer
概览
我在 App Engine 上有一个实例,带有 Google 提供的自定义域和 SSL 证书,但现在我需要在它前面放置一个 Google 云负载均衡器。
我按照此处的说明进行操作(针对 App Engine 而不是 Cloud 运行 进行了调整): 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
状态,文档说:
The domain's DNS record doesn't resolve to the IP address of the Google Cloud load balancer. To resolve this issue, update the DNS A/AAAA records to point to your load balancer's IP address.
https://cloud.google.com/load-balancing/docs/ssl-certificates/troubleshooting#domain-status
这些文档是这样说的 PROVISIONING
:
Google Cloud is working with the Certificate Authority to issue the certificate. Provisioning a Google-managed certificate might take up to 60 minutes
对于avoid/minimize这一小时的停机时间,我能做些什么吗?
我仍然需要对我的生产项目执行此操作。也许如果我改变步骤的顺序(甚至在创建 SSL 证书之前将 DNS 记录指向 IP)?
如果我能在更新 DNS 记录以指向负载均衡器的 IP 之前提供 SSL 证书似乎没问题,但更新 DNS 似乎是 SSL 证书甚至开始。
这很有趣,因为我已经通过 App Engine 自定义域设置从 google 获得了这些域的 SSL 证书。我希望这些可以重新用于负载均衡器。
您是创建了新的 DNS 资源记录还是更改了现有的?
如果您在创建资源记录之前尝试解析它,DNS 服务器将 return NXDOMAIN,这称为 否定响应。 DNS 解析器缓存否定响应。
如果您更改了现有资源记录,TTL 是多少?
DNS 解析器使用各种策略来决定将 DNS 资源记录缓存多长时间。一个因素是 TTL。
Create/update先记录DNS资源
通过首先创建 DNS 资源记录,NXDOMAIN 将不会在验证尝试时被 returned,这将减少您必须等待清除否定响应缓存的时间。您所在域的权威 DNS 服务器通常有两到四台服务器。创建新的资源记录时,服务器需要时间来创建 SLAVES 并将其与 MASTER 同步。这个时间通常只有一两分钟。
刷新 public Google DNS 服务器
如果您有具有长 TTL 值的陈旧(已更改)DNS 资源记录,请刷新 Google public DNS 服务器。此操作不是即时的,计划等待五分钟以便操作完成。
对于avoid/minimize这一小时的停机时间,我能做些什么吗?
您不能直接更改配置时间。如果您遵循以上几点,配置时间将会减少。根据我的经验,SSL 证书配置通常需要十分钟。
Google 负载均衡器在进行更改后需要时间进行更新。这个时间会有所不同,但通常是五到十分钟。这次是在证书供应之外的时间。您的网站在此期间可能不可用。
DNS 服务器更改不是即时的。您域的 DNS 服务器需要时间来更新,Internet 上的 DNS 解析器缓存资源记录、客户端系统缓存记录等。在更改 DNS 服务器之前制定计划。更改可能需要 24 到 72 小时才能在全球传播。