Kubernetes 活动/备用服务的最小数量
我对库伯内特斯完全陌生。也就是说:我正在考虑将故障转移能力添加到现有的DOCKEDISH服务中,您可能认为它是遗留服务,从某种意义上说,它需要一个主动/备用故障转移处理。(完整的基本原理需要相当长的时间来描述,它与空间索引和地理数据处理有关,其中对于给定场景,具有多个活动实例将使可伸缩性和性能方面的情况变得更糟,例如,切分将变得难以处理) 我的服务是一个HTTP REST服务(在C++中),使用的是分布式RQLite数据库的数据库客户端,该数据库存储了该服务管理的所有数据。我希望实现以下目标:Kubernetes 活动/备用服务的最小数量,kubernetes,Kubernetes,我对库伯内特斯完全陌生。也就是说:我正在考虑将故障转移能力添加到现有的DOCKEDISH服务中,您可能认为它是遗留服务,从某种意义上说,它需要一个主动/备用故障转移处理。(完整的基本原理需要相当长的时间来描述,它与空间索引和地理数据处理有关,其中对于给定场景,具有多个活动实例将使可伸缩性和性能方面的情况变得更糟,例如,切分将变得难以处理) 我的服务是一个HTTP REST服务(在C++中),使用的是分布式RQLite数据库的数据库客户端,该数据库存储了该服务管理的所有数据。我希望实现以下目标:
- 我希望有3个RQLite服务可以随时启动并持续运行,如果可能的话可以分发到三个节点(注意:RQLite本身使用RAFT,默认组为三个)
- 我还想有2-3个服务,我自己的应用程序运行的所有时间,其中一个必须是主所有其他必须保持待机状态
- 服务必须能够知道另一个(例如,解析RQLite实例的IP)
如果您能提供一个简单的示例来演示Kubernetes如何解决我的故障切换WOW,那就太好了。当然,关于Kubernetes,您也可以使用Nomad,我认为这没有对错之分,所以主要是关于意见和您想尝试的内容 我认为,如果您只想使用单个,您可以在副本中使用。您可以使用管理副本。这是假设您的应用程序具有领导人选举机制(如RAFT)一次只有1个pod/实例接收流量。领导者将始终通过就绪探测,而非领导者将失败就绪探测。Kubernetes服务不会将流量转发到其就绪探测未通过的pod 另一个选项是在2个或多个服务前设置自己的代理,该代理将执行运行状况检查,并仅转发到“活动”服务
.为什么您希望其中一个服务是主服务,而其他服务是备用的?我认为这实际上比只运行2-3个副本而所有副本都获得流量更难实现。@BrianPursley该服务正在处理地理围栏事件,例如围栏内的位置更新触发围栏进入事件。SerVice必须保证它们在任何更新中都是同步的。例如:实例1接收到的位置更新会触发围栏进入事件。实例2接收到的另一个位置更新必须保证不会触发重复的进入事件。要使此可扩展并避免同步,需要根据spa对其进行优化抽象属性。