StatefulSet将应用状态抽象成了两种情况:
拓扑状态:应用实例必须按照某种顺序启动,新创建的Pod必须和原来Pod的网络标识一样。
存储状态:应用的多个实例分别绑定了不同存储数据。
StatefulSet给所有的Pod进行了编号,编号规则是:(statefulset名称)-(序号),从0开始。
Pod被删除后重建,重建Pod的网络标识也不会改变,Pod的拓扑状态按照Pod的"名字+编号"的方 式固定下来,并且为每个Pod提供了一个固定且唯一的访问入口,即Pod对应的DNS记录。
StatefulSet通过Headless Service维持Pod的拓扑状态:
创建StatefulSet控制器
在nfs输出目录添加测试页
statefulset有序回收
mysql主从部署
要确保master启动时挂载的是master;slave启动时挂载的是slave。
部署mysql
MySQL 示例部署包含一个 ConfigMap、两个 Service 与一个 StatefulSet。
创建一个ConfigMap(主从的配置文件)
创建两个service
创建StatefulSet
将副本数修改为2时