AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 931032
Accepted
JazzCat
JazzCat
Asked: 2018-09-16 01:05:38 +0800 CST2018-09-16 01:05:38 +0800 CST 2018-09-16 01:05:38 +0800 CST

适用于 Webbservers 的 Google Cloud 托管实例组滚动更新

  • 772

我正在为我的问题寻找正确的解决方案。

问题是这样的:在实例组中的所有网络服务器上执行滚动更新,而不是同时提供不同的内容并实现 0 停机时间。

我有一台部署机器,用作测试场,在计划推出更新之前,所有新内容都部署在这台机器上并进行测试(这台机器应该是最新的 webbserver),当内容被验证并且更新没有问题时,将采取以下步骤。

  • 创建部署机器的快照
  • 创建快照的图像
  • 创建引用新图像的实例模板
  • 使用新实例模板对实例组执行滚动更新或滚动/重启替换操作

即使我已将“最大不可用”设置为零,我也无法实现 0 停机时间,我也不会在第一个计算实例上线时仅提供来自新更新机器的内容,这会导致提供 2 个不同的版本同时。

服务器没有响应 1-10 秒,我得到了经典<h2>The server encountered a temporary error and could not complete your request.<p>Please try again in 30 seconds.</h2>错误。

有没有更简单的方法来解决这个问题,而不必回退到配置我自己的 Haproxy 计算实例并执行以下步骤。

  • 在负载均衡器中禁用 % 服务器
  • 将内容同步到禁用的服务器
  • 启用更新的服务器
  • 禁用负载均衡器中剩余的 % 服务器
  • 将内容同步到禁用的服务器
  • 启用更新的服务器

这一定是用“常规”(前 LAP)实例完美地完成的,而不仅仅是 docker 图像,尽管我找不到关于这个主题的任何资源。

编辑:通过编辑实例组进行滚动更新,更改实例模板并执行滚动替换操作导致停机时间为零,我发现滚动更新功能也无法实现这一点很奇怪。

非常感谢您的意见。

google-cloud-platform
  • 1 1 个回答
  • 1542 Views

1 个回答

  • Voted
  1. Best Answer
    dany L
    2018-09-20T03:53:13+08:002018-09-20T03:53:13+08:00

    滚动更新是更新实例的渐进过程。争取 0 停机时间应该是可以实现的,但是由于滚动更新的工作方式,将看到提供不同的内容。为了使您的服务器更具响应性和更少的破坏性,请查看以下两种策略:

    最大浪涌。这将创建高于目标大小的实例,以加快更新过程。

    伺机更新。“仅当托管实例组创建新实例时才会应用机会更新”

    • 1

相关问题

  • 带有 OpenVPN 的 Google Compute Engine 上的 VPN 服务器

  • 如果您失去了 Google Apps 的管理员权限,如何恢复?

  • 云有多大?[关闭]

  • 谷歌应用引擎中的 joomla

  • 无需短信即可注册 Google AppEngine?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve