加入收藏 | 设为首页 | 会员中心 | 我要投稿 广州站长网 (https://www.020zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql容器持久化

发布时间:2022-10-17 17:31:02 所属栏目:MySql教程 来源:互联网
导读: 1.为什么需要持久化存储
01.在k8s运行时会出现一些小问题,当没有做持久化时,所有的数据都存在容器中,当容器死掉,容器就会删掉mysql持久化,然后会自动起一个新的容器,但是数据会丢失。

1.为什么需要持久化存储

01.在k8s运行时会出现一些小问题,当没有做持久化时,所有的数据都存在容器中,当容器死掉,容器就会删掉mysql持久化,然后会自动起一个新的容器,但是数据会丢失。

2.k8s引入了两个概念

pv :persistent volume (全局资源) node

pvc :persisternt volume claim (局部资源)namespace(pod、rc、svc)

3.安装nfs服务端(10.0.0.11)可以是独立的

yum install nfs-utils.x86_64 -y

mkdir /data

vim /etc/exports

/data 10.0.0.0/24(rw,async,no_root_squash,no_all_squash)

systemctl start rpcbind

systemctl start nfs

3.1在node节点安装nfs客户端

yum install nfs-utils.x86_64 -y

showmount -e 10.0.0.11

3.2 master创建pv和pvc

上传yaml配置文件

vim mysql_pv.yaml

apiVersion: v1

kind: PersistentVolume

metadata:

name: tomcat-mysql ###全局唯一

labels:

type: nfs001 ### pvc会根据标签来选择pv

spec:

capacity: ### 可以提供10G的存储

storage: 10Gi

accessModes: ### 支持多个pod同时挂载存储

- ReadWriteMany

persistentVolumeReclaimPolicy: Recycle ### pvc回收策略(支持回收)

nfs:

path: "/data/tomcat-mysql" ### nfs服务器目录

server: 10.0.0.11 ### nfs服务器地址

readOnly: false ###只读类型 (可写)

查看yaml值层级关系

kubectl explain pv.spec.persistentVolumeReclaimPolicy

创建共享目录

mkdir -p /data/tomcat-mysql

创建pv

kubectl create -f mysql_pv.yaml

查看pv

kubectl get pv -o wide

vim mysql_pvc.yaml

apiVersion: v1

metadata:

name: tomcat-mysql

spec:

accessModes: ##指定访问模式 多pod读写

- ReadWriteMany

resources: ### 需要的资源空间

requests:

storage: 1Gi

创建pvc

kubectl create -f mysql_pvc.yaml

查看pvc

kubectl get pvc -o wide

image.png

image.png

3.3启动一个新mysql pod使用volume

vim mysql-rc-pvc.yml

apiVersion: v1

kind: ReplicationController

metadata:

name: mysql

spec:

replicas: 1

selector:

app: mysql

template:

metadata:

labels:

app: mysql

spec:

containers:

- name: mysql

image: 10.0.0.11:5000/mysql:5.7

ports:

- containerPort: 3306

env:

- name: MYSQL_ROOT_PASSWORD

value: '123456'

volumeMounts:

- name: mysql

mountPath: /var/lib/mysql

volumes:

- name: mysql

persistentVolumeClaim:

claimName: tomcat-mysql ### pvc的名字

kubectl create -f mysql-rc-pvc.yml

持久化数据已成功

image.png

image.png

image.png

(编辑:广州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!