StatefulSets对于需要以下一项或多项的应用程序非常有用。
- 稳定,唯一的网络标识符。
- 稳定,持久的存储。
- 有序,优雅的部署和缩放。
- 有序,优雅的删除和终止。
- 有序的自动滚动更新。
POD Identity
有状态集合Pod有一个唯一的标识,它由一个序号,一个稳定的网络标识和稳定的存储组成。 无论哪个节点(重新)预定在哪个节点上,身份都粘在Pod上。
序数索引
对于具有N个副本的StatefulSet,StatefulSet中的每个Pod都将被分配一个从0到N-1的整数序数,它在Set上是唯一的。
稳定的网络ID
StatefulSet中的每个Pod从StatefulSet的名称和Pod的序号派生出其主机名。 构造主机名的模式是$(statefulset name)-$(ordinal)
。 上面的例子将创建三个名为web-0,web-1,web-2
Pod。
参考文档:
https://segmentfault.com/a/1190000008114183
https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/