在K8s中,StatefulSets将Pod部署成有状态的应用程序。通过使用StatefulSets控制器,可以为Pod提供持久存储和持久的唯一性标识符。StatefulSets控制器与Deployment控制器不同的是,StatefulSets控制器为管理的Pod维护了一个有粘性的标识符。无论这些Pod如何被调度,每个Pod的标识符都是永久不变的。这一特点可以满足一些特殊场景的需要,例如:使用存储卷为为Kubernetes集群提供持久型存储时,可以使用StatefulSets控制器作为解决方案的一种。
视频讲解如下:
【赵渝强老师】K8s中的有状态控制器StatefulSet |
---|
【赵渝强老师】有状态控制器StatefulSet |
下表对比了无状态的控制器Deployment与有状态控的制器StatefulSets的主要异同。
下面列举了一些StatefulSets的典型应用场景:
- 需要唯一的、稳定的网络标识符,即:Pod重新调度后其Pod名称和主机名不变。
- 需要持久的、稳定的持久化存储,即:Pod重新调度后还是能访问到相同的持久化数据。
- 需要优雅的、有序的部署应用和扩容缩容,即:Pod的部署和启动是顺序要求的,在部署或者扩展的时候要依据定义的顺序依次依次进行。
- 需要自动的、有序的滚动更新和回滚应用。
视频讲解如下:
【赵渝强老师】有状态控制器StatefulSet的应用场景 |
---|