【问题标题】:How to update database without taking down your serivce?如何在不关闭服务的情况下更新数据库?
【发布时间】:2019-04-01 17:44:48
【问题描述】:

我正在使用 ansible 来设置我的 docker-swarm。

在我的 docker swarm 中,我运行:Web 服务器、数据库和缓存。
我的问题是:如何在不创建暂停服务?

我是否应该镜像现有的 swarm,并运行两个相同的 swarm?
那么我应该如何确保这些更新是自动且完美的?

【问题讨论】:

  • 您要查找的场景是Continuous Delivery and Rolling Upgrades
  • 我还会遇到同样的问题吗?...让我们忘记我正在使用 Ansible。主要问题是:如何在不使服务不可用的情况下更新数据库容器及其在 docker swarm 中的映像?
  • @Heihade1 您可以使用 docker-swarm 滚动更新过程,其中您不需要停止所有容器的数据库服务,但最初只需要很少
  • 我解释它的方式很糟糕......我只运行一项服务,我们称之为测试。其中包含所描述的组件。
  • 我猜集成这是 CI/CD 管道不会有那么不同?推送到 DockerHub,它将 webhook 发送到更新 swarm 的 ansible?

标签: docker ansible docker-swarm docker-swarm-mode


【解决方案1】:

Docker swarm 仅允许在规模 > 1 时使用并行性以零停机时间更新服务。

您可以将并行性与数据库一起使用,并且停机时间应该尽可能短,但预计需要几秒钟。

检查docker swarm rolling updateansible docker swarm service 文档

当然,蓝绿部署不是数据库的选项

【讨论】:

    猜你喜欢
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多