mysql 状态存储_从部署mysql聊一聊有状态服务和PV及PVC

本文介绍了在Kubernetes中部署有状态服务,特别是MySQL,利用PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 实现数据持久化。通过部署NFS服务器作为存储解决方案,详细阐述了创建PV、PVC的过程,并展示了如何将MySQL与NFS结合,确保服务在不同节点间迁移时数据的完整性。
摘要由CSDN通过智能技术生成

前言

部署mysql之前我们需要先了解一个概念有状态服务。这是一种特殊的服务,简单的归纳下就是会产生需要持久化的数据,并且有很强的I/O需求,且重启需要依赖上次存储到磁盘的数据。如典型的mysql,kafka,zookeeper等等。

在我们有比较优秀的商业存储的前提下,灰常推荐使用有状态服务进行部署,计算和存储分离那是相当的爽的。在实际生产中如果没有这种存储,才有localPV也是不错的选择,当然local pv其实呢和hostPath是一样的。当然我们在开发测试环境也是可以自己搭建一套简单的如NFS服务,来享受存储和计算分离的爽快感。

kubernetes中定义一种了资源类型Stateful Service即有状态服务,有状态服务需要的持久化数据动态绑定我们可以利用存储的API PersistentVolume(PV)和PersistentVolumeClaim(PVC)来进行需要的相关数据的绑定和存储。

PV & PVC

PV就好比是一个仓库,我们需要先购买一个仓库,即定义一个PV存储服务,例如CEPH,NFS,Local Hostpath等等。PVC就好比租户,pv和pvc是一对一绑定的,挂载到POD中,一个pvc可以被多个pod挂载。大致一个流程如下,可以从这里,以及官网看到更多的额关于PV的细节

创建PV --> 创建PVC --> 绑定 --> 可写入数据

有了这个理解之后,我们接下来实战一下(mysql(pvc)+NFS(PV))

NFS Server

首先我们需要创建一个nfs server。我从hub.docker找到一个nfs-server。下面我们将它部署到kubernetes中。

部署nfs到kubernetes

# nfs-server.yamlapiVersion: v1kind: Servicemetadata:  name: nfs-service  labels:    app: nfs-servicespec:  ports:    - port: 2049      name: nfs-service  clusterIP: 10.96.0.14  selector:    app: nfs-service---apiVersion: apps/v1kind: Deploymentmetadata:  name: nfs-servicespec:  strategy:    type: Recreate  selector:    matchLabels:      app: nfs-service  template:    metadata:      labels:        app: nfs-service    spec:      # 采用node选择器      nodeName: node1      containers:        - name: nfs-service          image: itsthenetwork/nfs-server-alpine:latest          imagePullPolicy: IfNotPresent          securityContext:            privileged: true            capabilities:              add:                - SYS_ADMIN                - SETPCAP          livenessProbe:            tcpSocket:              port: 2049            timeoutSeconds: 5          readinessProbe:            tcpSocket:              port: 2049            timeoutSeconds: 5          ports:            - containerPort: 2049          env:            - name: SHARED_DIRECTORY              value: /nfsshare          volumeMounts:            - mountPath: /nfssha
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值