我熟悉Kubernetes,并没有找到在Kubernetes中部署有状态服务的简单解决方案。
AFAIK最适用的东西是宠物套装,但它仍然是alpha版,只能完全删除;此外,我不觉得我理解应该如何管理持续的音量来生存宠物套装娱乐。我提出的另一个选择是将服务部署分为引导节点部署,引导节点服务和所有其他节点部署,这允许我使用引导节点服务作为联系点(虽然这不是完全安全的,但是)。
这种情况的流行方法有哪些,它们有什么利弊?
答案 0 :(得分:1)
如果您正在查看Kubernetes群集中有状态群集中的一定数量的Pod,PetSets(StatefulSets,我相信它现在被称为)就是答案......或者您可以为每个Pod定义一个服务实现同样的目标。
要让Pod知道其他Pod的IP,您可以使用Headless Services,它为您提供与标签相关的IP列表。
对于存储,如果您使用emptyDir,则您拥有本地存储,但在删除/重新安排Pod时会丢失它。
我在Kubernetes中使用Zookeeper,设置起来有点痛苦,但Zookeeper提供了一个“重新配置”功能。允许在节点更改时重新配置群集的API,因此在重新安排Pod时,在启动新节点时重新定义群集非常容易。我不确定Consul是否具有相同类型的功能,但可能确实如此。