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

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

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

af95fe373e7d

image.png

af95fe373e7d

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

持久化数据已成功

af95fe373e7d

af95fe373e7d

image.png

af95fe373e7d

image.png

af95fe373e7d

image.png

Logo

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

更多推荐