k8s——14、statefulset控制器

49 篇文章 0 订阅
46 篇文章 2 订阅


使用阿里云主机ECS,
四台主机信息如下:
server1 — 私网IP:10.0.0.2 ----公网IP: 47.108.54.185 ---- 搭建docker仓库harbor—nfs服务器
server2 — 私网IP:10.0.0.3 ----公网IP: 47.108.144.231 ---- k8s集群主节点
server3 — 私网IP:10.0.0.4 ----公网IP: 47.108.115.206 ---- k8s集群节点
server4 — 私网IP:10.0.0.5 ----公网IP: 47.108.28.42 ---- k8s集群节点


statefulset控制器简介

  • StatefulSet是用来管理有状态应用的工作负载API对象,实例之间有不对等关系,以及实例对外部数据有依赖关系的应用,称为“有状态应用”
  • StatefulSet将应用状态抽象成了两种情况:
    拓扑状态:应用实例必须按照某种顺序启动。新创建的Pod必须和原来Pod的网络标识一样
    存储状态:应用的多个实例分别绑定了不同存储数据。
  • StatefulSet通过Headless Service维持Pod的拓扑状态
  • StatefulSet给所有的Pod进行了编号,编号规则是: $(statefulset名称)−(序号),从0开始。
  • StatefulSet还会为每一个Pod分配并创建一个同样编号的PVC。这样,kubernetes就可以通过Persistent Volume机制为这个PVC绑定对应的PV,从而保证每一个Pod都拥有一个独立的Volume。
  • Pod被删除后重建,重建Pod的网络标识也不会改变,Pod的拓扑状态按照Pod的“名字+编号”的方式固定下来,并且为每个Pod提供了一个固定且唯一的访问入口,即Pod对应的DNS记录。

statefulset控制器如何通过headless service维持pod的状态

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

pv和pvc的设计,使得statefulset能管理存储状态

在这里插入图片描述
在这里插入图片描述
Statefulset还会为每一个pod分配并创建一个同样编号的pvc。
这样,kubernetes就可以通过PV机制绑定对应的PVC,从而保证每一个pod都拥有一个独立的卷

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用statefulset部署MySQL主从复制集群

参考官方文档:
https://kubernetes.io/zh-cn/docs/tasks/run-application/run-replicated-stateful-application/

包含的模块:
MySQL集群包含一个CM,两个Service与一个StatefulSet
配置Mysql主从时,不同的节点的配置不同。
CM中包含两个配置文件,分别为主配置文件:master.cnf和从配置文件:slave.cnf
主要包含两个SVC:Headless Service和ClusterIP Service;Headless SVC主要负责主集群

在这里插入图片描述
在这里插入图片描述
编辑CM,主服务器可以将日志提供给从服务器,并且从服务器只能读不能写:
注意:由于这里的数据目录与statefulset.yaml文件中的数据目录写的不一致,导致后面pod起不来,注意避开这个错误。
写成默认路径:
datadir=/var/lib/mysql
或者不写,也代表使用默认路径。

在这里插入图片描述
在这里插入图片描述接下来,创建两个SVC:
在这里插入图片描述
在这里插入图片描述创建statefulset控制器。

  • 首先使用无头服务,初始化容器,使用mysql镜像,利用脚本分别拿到主从配置文件,对启动的Pod生成server id的文件(server-id.cnf),再将CM的配置文件按主从类型拷贝出来(通过上一部主机id来决定)
  • 接下来启动的副本允许超户使用空密码;挂载了两个目录,包含配置目录和数据目录;分别可以使用CPU一半的资源和使用1G内存,并添加了存活探针和就绪探针
  • 在容器最后需要声明挂载卷的类型,conf为空卷,config-map是挂载卷

直接复制官方文档。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
准备mysql备份工具:xtrabackup,并上传至harbor仓库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实验完毕,还原。

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值