我们目前正在一台托管我们所有图像的服务器上运行私有(private)注册表。 如果服务器崩溃,我们基本上会丢失所有图像。我们希望找到一种方法来实现图像的高可用性。 我认为一个简单的解决方案是每台服务器都有一个注册表实例。 负载均衡器会将流量重定向(循环)到可用的注册表实例。注册表实例将共享相同的网络数据驱动器(NFS)来存储图像。
您发现此解决方案有任何问题吗? 即:如果用户在一个实例上推送一个镜像,然后在另一个实例上推送另一个镜像(负载均衡器循环决策),它会在 NFS 上创建任何锁定文件吗?
感谢您的反馈
最佳答案
可以使用 S3 来支持注册表,如 here 中所述。 。在容器中运行注册表是值得的,这样您就可以在发生灾难性主机/数据中心故障时立即启动另一个容器。注册中心还支持 GCloud 和 OpenStack。
如果您担心数据丢失,请为持久性添加冗余并确保定期备份。您还应该确保您的构建是幂等的,以便在绝对必要时可以重建镜像。
关于registry - 私有(private) Docker 注册表和高可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28540703/