Lai*_*son 53 kubernetes kubernetes-statefulset
我是Kubernetes的新手,可能会被推测,所以请原谅我,如果我对术语的使用不太正确的话.我希望我的问题的意图是明确的.
我试图围绕有状态集合.它们的使用与使用持久卷的"无状态"Pod有何不同?也就是说,假设一个"正常"的Pod可能声称持久存储,我错过了哪些显而易见的东西需要这个新的构造(有序的启动/停止等)?
Oli*_*ain 93
是的,常规pod可以使用持久卷.但是,有时您有多个逻辑上形成"组"的pod.这方面的例子是数据库副本,ZooKeeper主机,Kafka节点等.在所有这些情况下,有一堆服务器,它们一起工作并相互通信.他们的特别之处在于,团队中的每个人都有自己的身份.例如,对于数据库集群,一个是主数据库,两个是关注者,每个关注者与主服务器通信,让它知道它有什么并且没有同步.因此,关注者知道"db-x-0"是主人,主人知道"db-x-2"是一个追随者,并且所有数据都达到某一点,但仍然需要超出该数据的数据.
在这种情况下,您需要从常规pod中轻松获得的一些东西:
StatefulSets解决了这些问题,因为它们提供了(引自https://kubernetes.io/docs/concepts/abstractions/controllers/statefulsets/):
我没有真正谈论过(3)和(4),但是这也可以帮助群集,因为你可以告诉第一个部署成为主人,下一个找到第一个并将其视为主人等.
正如一些人所指出的那样,通过使用常规的pod和服务,你确实可以获得一些相同的好处,但它的工作要多得多.例如,如果您需要3个数据库实例,则可以手动创建3个部署和3个服务.请注意,您必须手动创建3个部署,因为您无法将服务指向部署中的单个窗格.然后,为了扩展,您需要手动创建另一个部署和另一个服务.这确实有效,并且在PetSet/PersistentSet出现之前有点常见.请注意,它缺少上面列出的一些好处(例如,持久性卷映射和固定启动顺序).
| 归档时间: |
|
| 查看次数: |
7620 次 |
| 最近记录: |