本文参考《kubernetes权威指南 第4版》,望周知
StatefulSet的使用场景
Kubernetes使用StatefulSet来搭建有状态的应用集群(MongoDB、 MySQL等) , 能够保证各应用实例在创建和运行的过程中, 都具有固定的身份标识和独立的后端存储; 还支持在运行时对集群规模进行扩容、 保障集群的高可用等非常重要的功能。
上述关键词有: 有状态的、固定的身份标识、独立的后端存储。这些的实现就涉及到了HeadLessService、StorageClass的动态存储以及持久化存储的方式如GlusterFS这些。这也是实现一个StatefulSet的必要前提。
以下是一个使用statefulSet部署MongoDB的架构示意图:
StatefulSet是什么?
StatefulSet是和ReplicaSet十分类似的资源对象,它可以设置replica的数量,做到pod数量的动态伸缩。但不同的是,每个由它模板创建的pod却都可以拥有自己独立的存储卷。与此同时,由StatefulSet创建出来的pod的命名也十分有规律(一般为服务名