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