StatefulSet将应用状态抽象成了两种情况:

拓扑状态:应用实例必须按照某种顺序启动,新创建的Pod必须和原来Pod的网络标识一样。

存储状态:应用的多个实例分别绑定了不同存储数据。

StatefulSet给所有的Pod进行了编号,编号规则是:$(statefulset名称)-$(序号),从0开始。

Pod被删除后重建,重建Pod的网络标识也不会改变,Pod的拓扑状态按照Pod的“名字+编号”的方 式固定下来,并且为每个Pod提供了一个固定且唯一的访问入口,即Pod对应的DNS记录。

StatefulSet通过Headless Service维持Pod的拓扑状态:

创建StatefulSet控制器

在nfs输出目录添加测试页

statefulset有序回收


mysql主从部署

官网:运行一个有状态的应用程序 | Kubernetes

要确保master启动时挂载的是master;slave启动时挂载的是slave。

部署mysql

MySQL 示例部署包含一个 ConfigMap、两个 Service 与一个 StatefulSet。

创建一个ConfigMap(主从的配置文件)

创建两个service

创建StatefulSet

将副本数修改为2时

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐