Sharing named volumes across hosts seems like a necessity for any production use of Docker Swarm Mode on a real-world application (where data storage is required). Without this, if one node goes down I might lose access to all of my data, which rather defeats one of the main purposes of horizontal scaling - to remove/reduce single points of failure. And yet this isn’t supported out-of-the-box and all the plugins I can find for this purpose are archived on GitHub or haven’t been touched in years, which makes me hesitate to use any of them as I don’t want to risk future security issues due to unsupported plugins.
For example, the plugins I’ve found the most references to in articles and tutorials are Flocker and Gluster FS. However, Flocker seems to have lost all support since ClusterHQ went out of business and the GlusterFS repository linked from the docs is marked as archived.
The fact that people do use Docker swarms in production tells me I might be missing something. I, therefore, have a few questions:
Are these volume plugins safe to use despite the lack of updates? (I would imagine not but if I’m right then I’m surprised they’re still referenced in the official Docker documentation)
Does anyone know of a reliable, currently supported plugin for sharing named volumes across swarm nodes that doesn’t depend on external services such as NFS mounts?
What other solutions do people use for data storage in production? Are you simply running databases and file stores completely outside of your container-based infrastructure?