我刚学习如何使用CoreOS,并已经遇到了第一个真正困扰我的问题:当使用fleetctl来启动和pipe理单元时,我了解到一个单元被自动移动到另一个机器上,当机器select运行单元重新启动或由于其他原因而无法访问群集。 想象一下当你有一个运行一个Docker容器的单元时,它可以访问特定目录(通过一个Docker卷),而这个容器只存在于特定的机器上。
如果运行这个容器的单元移动到另一台机器会发生什么? 我想单位将失败,因为应该被安装为Docker卷的目录不存在于新机器上。 这是否真的发生? 我怎么能绕过这个问题呢? 一般来说,在自动迁移容器的情况下,如何坚持docker集装箱使用的工作数据?
我想现在是确保数据可用的责任。 您可能需要检查https://github.com/ClusterHQ/flocker ,这是专门devise的,以便将数据与docker集装箱一起使用。 我认为它依赖于ZFSfunction,这可能会排除它在CoreOS上的使用。 我能想到的唯一select是使用安装在CoreOS上的高可用性外部卷。
您可以考虑在CoreOS群集上运行一些分布式文件系统。 这样无论你的数据库服务容器是以什么样的机器结束的,它总是能够使用从DFS挂载的数据库。