Myluzh Blog

Strive to become a dream architect.

K8S笔记-持久化存储(PV和PVC)

发布时间: 2023-10-20 文章作者: myluzh 分类名称: Kubernetes


0x01 PV PVC概述

PV(PersistentVolume)是对底层的共享存储的一种抽象,由管理员进行创建和配置。它和具体的底层的共享存储技术的实现方式有关,比如Ceph、GlusterFS、NFS等,都是通过插件机制完成与共享存储的对接。

PVC(PersistentVolumeClaim)是Kubernetes中的一个资源对象,用于抽象地申请和管理持久化存储资源。它向POD(容器运行的环境)提供了一个简单、抽象的接口,用于绑定和挂载一个POD所需要的存储卷。POD可以通过PVC来自动配置和使用存储卷。


实现流程:

点击查看原图

0x02 申请PVC例子

1、定义一个pv,名字为my-pv

[root@k8s-master01 k8s]# vi my-pv.yaml 
apiVersion: v1  
kind: PersistentVolume  
metadata:  
  name: my-pv  
spec:  
  capacity:  
    storage: 5Gi  # 指定存储容量为 5Gi 
  accessModes:  
    - ReadWriteMany  # 允许读写访问模式 
  nfs:  
    path: /volume1/DataStore/k8s_nfs
    server: 172.16.10.15
[root@k8s-master01 k8s]# kubectl apply -f my-pv.yaml 
persistentvolume/my-pv created

2、创建应用部署并申请PVC持久卷

apiVersion: apps/v1  
kind: Deployment  
metadata:  
  name: nginx-dep1  
spec:  
  replicas: 3
  selector:  
    matchLabels:  
      app: nginx  
 template:  
  metadata:  
    labels:  
      app: nginx  
  spec:  
    containers:  
    - name: nginx  
      image: nginx  
      volumeMounts:  
      - name: wwwroot  
        mountPath: /usr/share/nginx/html  
    ports:  
    - containerPort: 80  
    volumes:  
    - name: wwwroot  
      persistentVolumeClaim:  
        claimName: my-pvc

---

apiVersion: v1  
kind: PersistentVolumeClaim  
metadata:  
  name: my-pvc  
spec:  
  accessModes:  
    - ReadWriteOnce # 或者其他的访问模式,例如ReadWriteMany  
  resources: # 这个字段通常包含请求的存储资源大小,例如:  
    requests:  
      storage: 5Gi # 请求5Gi的存储资源



标签: k8s pv pvc

发表评论