我正在评估为一家拥有2台服务器的小公司实施docker的策略。我们希望让它们既可以作为集群工作,也可以对工作进行负载平衡,但是如果发生故障则可以作为彼此的故障保护工作。
根据我的理解,etcd需要至少3台主机,否则你将失去放置/获取密钥的能力。对于2台机器来说这是不可能的,而对于3台机器,没有一台可能会失败。这个评估是否正确?
唯一的解决方案是拥有一个etd,但这意味着如果失败的机器是“etcd” - 那么两者都会停止正常工作......
为了澄清一点,我想要像fleetd的调度和集群功能这样的好处,但需要小规模的部署。在主机之间手动移动容器/ systemd-units和数据是我的备份计划,但不太理想。
答案 0 :(得分:0)
您只能使用2台主机运行coreos,但是一旦您没有法定数量,您将丢失您的etcd群集,如果两台机器都重新启动,则只有2台机器可以使用。如果所有计算机都重新启动,则使用3台主机,您获得法定人数的可能性要高得多。
如果你愿意让一个人永远被认为是高手,你可以做到这一点,你只需要确保你了解如果让法定人数丢失,如何让一个etd同伴认为自己是主人。
如果您有静态IP,那么您可以更好地控制群集,并且设置群集IP就可以了,那么即使两台服务器都重新启动,它们也应该能够相互发现并达到稳定状态。
查看docs