StatefulSets在v1.5时还是个beta特性,它取代了v1.4的PetSets特性。PetSets的用户可以参考v1.5的升级指导,将正在运行的PeetSets升级到StatefulSets。
  StatefulSet是一个给Pod提供唯一标志的控制器,它可以保证部署和扩展的顺序。

使用StatefulSet

  当应用有以下任意要求时,StatefulSet的价值就体现出来了。
   ● 稳定的、唯一的网络标识。
   ● 稳定的、持久化的存储。
   ● 有序的、优雅的部署和扩展。
   ● 有序的、优雅的删除和停止。
  上面提到的点中,在Pod调度时,稳定性和持久化是同一个意思。如果一个应用不需要任何稳定的标识或顺序的部署、删除和扩展,那么你应该使用提供无状态备份的控制器来部署你的应用。诸如Deployment或者ReplicaSet可能更适合你的无状态服务需求。

限制

   ● StatefulSet还是beta版本,Kubernetes v1.5之前不可用。
   ● 和所有的alpha/beta资源一样,可以将--runtime-config选项传递给apiserver,来禁止StatefulSet。
   ● 给定Pod的存储必须是:基于请求存储等级(Storage Class)的PersistentVolume Provisioner,或者是由管理员预先配置。
   ● 删除和(或)减少StatefulSet副本,不会删除StatefulSet相关的卷。这样做是为了保证数据安全,比自动的清除StatefulSet相关资源更有价值。
   ● 当前StatefulSet需要Headless服务来负责Pod的网络一致性。你需要创建该服务。
   ● 当前,