k8s-存储抽象-PV挂载

本文章属个人学习整理的对应笔记,学习内容来尚硅谷的培训课,有兴趣的同学可以跳转下方链接

【云原生Java架构师的第一课K8s+Docker+KubeSphere+DevOps】https://www.bilibili.com/video/BV13Q4y1C7hS?p=71&vd_source=08192e8d3b82bf20dfe6807a2901dd9e


1.PV&PVC

PV:

持久卷(Persistent Volume),将应用需要持久化的数据保存到指定位置,pv也分为静态和动态供应,静态是需要自己主动创建好,动态就是根据pod需求来自动创建

PVC:

持久卷申明(Persistent Volume Claim),申明需要使用的持久卷规格。pod需要使得多大的空间,就需要申请对应的PVC。PVC根据需要去寻找合适的PV给到pod使用

pod删除后,pvc也会删除,对应pv数据也会删除

k8s-存储抽象-PV挂载_第1张图片

2.创建PV池

1.nfs主节点操作就行

mkdir -p /nfs/data/01

mkdir -p /nfs/data/02

mkdir -p /nfs/data/03

k8s-存储抽象-PV挂载_第2张图片

2.创建PV

storage: 8M 

#限制容量大小

accessModes:

#指定访问模式

  - ReadWriteOnce

 #pv能以readwrite模式mount到单个节点

 persistentVolumeReclaimPolicy: Recycle

#指定pv的回收策略,即pvc资源释放后的事件.recycle(不建议,使用动态供给代替)删除pvc的所有文件

  storageClassName: nfs

  #指定pv的class为nfs,相当于为pv分类,pvc将指定class申请pv

apiVersion: v1

kind: PersistentVolume

metadata:

  name: pv01-10m

spec:

  capacity:

    storage: 10M

  accessModes:

    - ReadWriteMany

  storageClassName: nfs

  nfs:

    server: 192.168.181.100

    path: /nfs/data/01

---

apiVersion: v1

kind: PersistentVolume

metadata:

  name: pv02-1gi

spec:

  capacity:

    storage: 1Gi

  accessModes:

    - ReadWriteMany

  storageClassName: nfs

  nfs:

    server: 192.168.181.100

    path: /nfs/data/02

---

apiVersion: v1

kind: PersistentVolume

metadata:

  name: pv02-3gi

spec:

  capacity:

    storage: 3Gi

  accessModes:

    - ReadWriteMany

  storageClassName: nfs

  nfs:

    server: 192.168.181.100

    path: /nfs/data/03

k8s-存储抽象-PV挂载_第3张图片

3.PVC创建与绑定

  accessModes

# 访问模式

  selector:

# 采用标签对PV选择,ReadWriteMany是大家都能读能写

  storageClassName:

# 指定pv的class为nfs,相当于为pv分类,pvc将指定class申请pv,必须保持一致

  resources:

# 请求空间

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

  name: nginx-pvc

spec:

  accessModes:

  - ReadWriteMany

  storageClassName: nfs

  resources:

    requests:

      storage: 200Mi

k8s-存储抽象-PV挂载_第4张图片

 4.创建pod绑定PVC

apiVersion: apps/v1

kind: Deployment

metadata:

  labels:

    app: nfs-nginx-pvc

  name: nfs-nginx-pvc

spec:

  replicas: 3

  selector:

    matchLabels:

      app: nfs-nginx-pvc

  template:

    metadata:

      labels:

        app: nfs-nginx-pvc

    spec:

      containers:

      - image: nginx

        name: nginx

        volumeMounts:

        - name: html

          mountPath: /usr/share/nginx/html

      volumes:

        - name: html

          persistentVolumeClaim:

       claimName: nginx-pvc

k8s-存储抽象-PV挂载_第5张图片

5.验证

k8s-存储抽象-PV挂载_第6张图片


 我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

你可能感兴趣的:(#,K8s,kubernetes,java,容器,云原生,服务器)