Docker Swarm是否在节点之间保持数据同步?

Docker Swarm是否在节点之间保持数据同步?,docker,kubernetes,docker-swarm,Docker,Kubernetes,Docker Swarm,我从来没有对Docker Swarm或Kubernetes做过任何事情,所以在解决它之前,我试图了解什么是什么,什么是最适合我的目的 我的场景: 我有一台运行Docker Desktop的台式电脑,并且 我有一个Raspberry PI在Raspbian上运行Docker 这一切都在家庭局域网上,所以我真的不想为复杂的事情发疯 我想在这两台“机器”上运行Pi-Hole和DNSCrypt代理容器(作为冗余,主要是因为Docker桌面在我使用该机器处理Pi-Hole时似乎会大量崩溃,导致整个DN

我从来没有对Docker Swarm或Kubernetes做过任何事情,所以在解决它之前,我试图了解什么是什么,什么是最适合我的目的

我的场景:

  • 我有一台运行Docker Desktop的台式电脑,并且
  • 我有一个Raspberry PI在Raspbian上运行Docker
这一切都在家庭局域网上,所以我真的不想为复杂的事情发疯

我想在这两台“机器”上运行Pi-Hole和DNSCrypt代理容器(作为冗余,主要是因为Docker桌面在我使用该机器处理Pi-Hole时似乎会大量崩溃,导致整个DNS系统崩溃)

我的主要任务是,我希望它们之间的所有数据/配置等保持同步(即Pi hole的容器数据在两台设备上保持同步,等等),我希望管理者确保它始终处于启动状态,以防崩溃,等等

我的问题:

对这一领域完全陌生,只是做了一些探索:

  • 看起来库伯内特斯可能有点复杂,比我需要的还要复杂
  • 这就是为什么我想改为Swarm,但我也不确定它们是否会保持数据同步
  • 假设我在Manager机器上创建2个Pi孔容器,它是否在Manager机器上创建1个,在worker机器上创建1个

欢迎提供任何信息

Docker没有什么可以直接满足您的需要,但是如果您的家庭局域网上有一个可靠的文件服务器,您就可以很容易地做到这一点

广义地说,你想看看。它们中的大多数最终通过外部存储提供商工作,因此对您没有多大帮助。还有一些更为奇特的产品,如Portworx或StorageOS,它们完全可以在Docker中进行便携式/复制存储,但我认为大多数都是付费许可

但是,如果您有一个您信任的文件服务器可以保持正常运行,则可以将NFS/CIFS共享作为卷装入,如中所述,并且Docker可以在容器由于故障从一个节点移动到另一个节点时处理重新连接


另一个注意事项是:在swarm中,每个服务需要两个manager节点和一个容器。您需要有一个工作管理器节点,swarm才能工作(如果管理器崩溃,这一点很重要)。多个单独的实例通常只有在服务被设计为分布式/容错应用程序时才有用。

Docker没有任何东西可以直接满足您的需要,但是如果您的家庭LAN上有一个可靠的文件服务器,您就可以很容易地做到这一点

广义地说,你想看看。它们中的大多数最终通过外部存储提供商工作,因此对您没有多大帮助。还有一些更为奇特的产品,如Portworx或StorageOS,它们完全可以在Docker中进行便携式/复制存储,但我认为大多数都是付费许可

但是,如果您有一个您信任的文件服务器可以保持正常运行,则可以将NFS/CIFS共享作为卷装入,如中所述,并且Docker可以在容器由于故障从一个节点移动到另一个节点时处理重新连接


另一个注意事项是:在swarm中,每个服务需要两个manager节点和一个容器。您需要有一个工作管理器节点,swarm才能工作(如果管理器崩溃,这一点很重要)。通常,只有当服务被设计为分布式/容错应用程序时,多个单独的实例才有帮助。

当你说“数据”时,你的意思是容器上的内容会随着时间的推移而变化,这取决于它们所看到的流量,并且你想要一个副本来跟踪容器,或者,您的意思是,您在第一次启动容器时设置了一组永远不会更改的数据(如配置文件)?我猜这两个应用程序可能非常无状态,但是I@CantankerousBullMoose前者。基本上,在任一容器中更改的任何数据(例如,管理器计算机和工作机上的1个节点)都会得到sysnced并保存。示例:我在每台机器上都有一个Pi孔容器,我在1台机器上更改了一个设置,例如将IP添加到黑名单并单击保存,我想让它在两台机器上都保存。当你说“数据”时,你的意思是容器上的内容会随着时间的推移而变化,你想让它的副本跟随容器,还是说你有一组在第一次启动容器时设置的永远不会改变的数据(如配置文件)?我猜这两个应用程序可能非常无状态,但是I@CantankerousBullMoose前者。基本上,在任一容器中更改的任何数据(例如,管理器计算机和工作机上的1个节点)都会得到sysnced并保存。示例:我在每台机器上都有一个Pi孔容器,我在一台机器上更改了一个设置,例如将IP添加到黑名单并单击“保存”,我希望它在两台机器上都保存该设置。