k8s-statefulset控制器 12

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

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

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

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

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

StatefulSet通过Headless Service维持Pod的拓扑状态:k8s-statefulset控制器 12_第1张图片k8s-statefulset控制器 12_第2张图片k8s-statefulset控制器 12_第3张图片

创建StatefulSet控制器k8s-statefulset控制器 12_第4张图片k8s-statefulset控制器 12_第5张图片

在nfs输出目录添加测试页k8s-statefulset控制器 12_第6张图片

statefulset有序回收k8s-statefulset控制器 12_第7张图片k8s-statefulset控制器 12_第8张图片


mysql主从部署

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

k8s-statefulset控制器 12_第9张图片

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

部署mysql

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

创建一个ConfigMap(主从的配置文件)k8s-statefulset控制器 12_第10张图片

创建两个servicek8s-statefulset控制器 12_第11张图片k8s-statefulset控制器 12_第12张图片

创建StatefulSet

k8s-statefulset控制器 12_第13张图片k8s-statefulset控制器 12_第14张图片k8s-statefulset控制器 12_第15张图片k8s-statefulset控制器 12_第16张图片k8s-statefulset控制器 12_第17张图片k8s-statefulset控制器 12_第18张图片k8s-statefulset控制器 12_第19张图片

将副本数修改为2时

k8s-statefulset控制器 12_第20张图片

你可能感兴趣的:(kubernetes,容器,云原生)