在CoreOS主机之间移动Docker数据卷容器

5
对于某些情况,群集文件系统可能太过复杂。如果我理解正确的话,这就是数据卷容器模式的使用场景。但即使是CoreOS也需要定期更新。如果我仍然希望最小化应用程序的停机时间,我必须将数据卷容器与应用程序容器一起移动到另一个主机上,而旧主机正在进行更新。
是否存在最佳实践?经常提到的解决方案是在旧主机上使用docker export,在新主机上使用docker import备份容器。但这将包括将tar文件通过scp传输到另一个主机。这是否可以通过fleet来管理?

我希望不是这样。我的问题是针对CoreOS的,我希望可以利用Fleet来编排这个过程。话虽如此,其他问题的答案确实也适用于CoreOS,只要它们不与CoreOS的设计相冲突。 - brejoc
我认为在这里建议的正确解决方案将是应用程序特定的。您在Docker卷中管理什么类型的数据,以及您正在尝试最小化哪个服务的停机时间? - jkingyens
@jkingyens 嗯,我不确定,但我认为这不是特定于应用程序的。如果您想使用数据卷容器持久地管理数据,无论您将上传的图像、数据库或其他内容存储在其中,都没有关系。一旦一个主机宕机(例如进行更新或由于向下扩展),数据卷容器必须迁移到另一个主机上。 - brejoc
1
@brejoc 我认为你需要寻找一些专门设计来解决这个问题的工具(例如 Flocker),否则这将被视为应用程序问题。例如,使用 DB 复制或 NoSQL 数据存储,它们可以容忍丢失与单个集群成员相关联的磁盘卷。 - Mark O'Connor
显示剩余3条评论
1个回答

3

@brejoc,我不认为这是一个解决方案,但它可能会有所帮助:

备选方案: 1:使用另一个具有集群功能的操作系统,或者至少不会阻止它。我现在正在尝试CentOS。 2:我创建了几个工具,可以在某些用例中提供帮助。第一个工具从S3(通常是工件)检索数据,并且是单向的。第二个工具被称为“备份卷容器”,它具有很大的潜力,但需要一些反馈。它为数据提供了从/到许多持久性数据存储(包括S3,但也包括很酷的Dropbox)的双向备份/还原。现在实现的方式是,当您第一次运行它时,它将恢复到容器中。从那时起,它将监视容器中的相关文件夹以进行更改,并在更改后(以及安静期之后)备份到持久存储。

备份卷容器:https://registry.hub.docker.com/u/yaronr/backup-volume-container/ 从S3同步文件:https://registry.hub.docker.com/u/yaronr/awscli/ (docker run yaronr/awscli aws s3等等-阅读aws文档)


@brejoc,谢谢。如果您尝试备份容器卷并告诉我您的想法,那将很好。迄今为止,很多人已经下载了它,但我没有收到任何评论,所以我不知道人们是否真的觉得它有用。 - JRun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接