Kubernetes 为什么是州政府?Can';无状态Pod是否使用持久卷?
我在努力理解。它们的使用与使用具有持久卷的“无状态”POD有何区别?也就是说,假设一个“正常”的Pod可以声称拥有持久性存储,那么我缺少什么明显的东西需要这种新构造(具有有序的启动/停止等)?是的,一个常规的Pod可以使用持久性卷。然而,有时你有多个豆荚,逻辑上形成一个“组”。例如,数据库副本、ZooKeeper主机、Kafka节点等。在所有这些情况下,都有一组服务器,它们一起工作并相互通信。他们的特殊之处在于团队中的每个人都有自己的身份。例如,对于一个数据库集群,一个是主集群,两个是跟随集群,每个跟随集群都与主集群通信,让主集群知道它已经同步了什么和没有同步什么。因此,跟随者知道“db-x-0”是主控者,而主控者知道“db-x-2”是跟随者,拥有到某一点的所有数据,但仍然需要超出该点的数据 在这种情况下,你需要一些你不容易从普通豆荚中获得的东西:Kubernetes 为什么是州政府?Can';无状态Pod是否使用持久卷?,kubernetes,kubernetes-statefulset,Kubernetes,Kubernetes Statefulset,我在努力理解。它们的使用与使用具有持久卷的“无状态”POD有何区别?也就是说,假设一个“正常”的Pod可以声称拥有持久性存储,那么我缺少什么明显的东西需要这种新构造(具有有序的启动/停止等)?是的,一个常规的Pod可以使用持久性卷。然而,有时你有多个豆荚,逻辑上形成一个“组”。例如,数据库副本、ZooKeeper主机、Kafka节点等。在所有这些情况下,都有一组服务器,它们一起工作并相互通信。他们的特殊之处在于团队中的每个人都有自己的身份。例如,对于一个数据库集群,一个是主集群,两个是跟随集群,
正如一些人所指出的,通过使用常规的播客和服务,您确实可以获得一些相同的好处,但这需要做更多的工作。例如,如果需要3个数据库实例,可以手动创建3个部署和3个服务。请注意,您必须手动创建3个部署,因为部署中不能有一个指向单个pod的服务点。然后,为了扩大规模,您需要手动创建另一个部署和另一个服务。这确实有效,在PetSet/PersistentSet出现之前,这是一种常见的做法。请注意,它缺少上面列出的一些好处(例如,持久的卷映射和固定的启动顺序)。这是一个非常明确的答案,它正好提供了我所需要的。干得好,谢谢!为了完整起见,稍微消化一下,Kubernetes服务不给我(你的)1和2吗?(我得到(你的)3是唯一的。)我不能用一个服务前置我所有(相关)的pod,并通过这样做获得可预测的名称和地址吗?你必须手动将persistentVolume从一个节点移动到另一个节点。StatefulSet也将负责将persistentVolume与pod一起移动。此外,您需要手动为每个pod创建一个服务,这意味着您无法使用部署,因此您需要手动创建每个pod。然后,扩展意味着手动创建更多的pod和服务。这是可以做到的(在他们添加Petset之前我经常这么做),但这很痛苦。@ChristianSchmitt确实可以跨多个Pod提供服务。我认为答案是,除了与您所描述的“任何旧成员”对话的服务之外,还需要为组中每个唯一的个人提供一个服务,这样您就可以单独处理主副本、第一个副本等。