我有一个在虚拟机上运行的分布式应用程序,其中我有一个服务以主动/被动模式运行。活动虚拟机通过公共 IP 提供服务。如果主动 VM 发生故障,公共 IP 将被移动到被动 VM,被动 VM 将变为主动并开始提供服务。
这种模式如何适应 Kubernetes 管理的容器化应用程序?
如果我使用副本数 = 1 的复制控制器,则在节点/minion 故障的情况下,复制控制器将在另一个 minion 中重新安排 pod(= 我当前应用程序中的 VM),但这可能会导致与我当前的解决方案相比的高停机时间仅移动 IP 资源的位置。
如果我使用具有副本数 = 2 的复制控制器,那么我需要对两个 pod(一个具有公共 IP,另一个没有)进行不同的配置,这是反模式?此外,kubernetes 中没有设计方法来支持虚拟 IP(在 pod 周围移动。)?
或者我应该使用replicas = 2并自己实现一些东西来管理IP(或者可能使用pacemaker?这会引入另一个问题:我的应用程序、kubernetes和pacemaker/corosync中会有集群管理)
那么,这应该怎么做呢?