PV/PVC/StorageClass
管理存储是管理计算的一个明显问题。该PersistentVolume
子系统为用户和管理员提供了一个API,用于抽象如何根据消费方式提供存储的详细信息。为此,我们引入了两个新的API资源:PersistentVolume
和PersistentVolumeClaim
。
A PersistentVolume
(PV)是群集中的一块存储,由管理员配置或使用存储类动态配置。它是集群中的资源,就像节点是集群资源一样。PV是容量插件,如Volumes,但其生命周期独立于使用PV的任何单个pod。此API对象捕获存储实现的详细信息,包括NFS,iSCSI或特定于云提供程序的存储系统。
甲PersistentVolumeClaim
(PVC)是由用户进行存储的请求。它类似于一个pods。Pod消耗节点资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和内存)。声明可以请求特定的大小和访问模式(例如,可以一次读/写或多次只读)。
最终实现数据的持久化
使用NFS 测试
[root@kube yum.repos.d]# yum install -y nfs-utils //安装服务 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Resolving Dependencies ....... [root@kube data]# cat /etc/exports //编辑配置文件 /nfs/data 10.2.61.0/24(rw,no_root_squash,sync) [root@kube data]# #启动服务 systemctl restart rpcbind && systemctl enable rpcbind systemctl restart nfs && systemctl enable nfs
//安装客户端也是通过 yum install -y nfs-utils
nfs 创建多个挂载点
[root@kube data]# exportfs /nfs/data/v1 10.2.61.0/24 /nfs/data/v2 10.2.61.0/24 /nfs/data/v3 10.2.61.0/24 /nfs/data/v4 10.2.61.0/24 /nfs/data/v5 10.2.61.0/24 /nfs/data/v6 10.2.61.0/24 /nfs/data/v7 10.2.61.0/24 /nfs/data/v8 10.2.61.0/24 /nfs/data/v9 10.2.61.0/24 [root@kube data]# [root@kube data]# systemctl restart rpcbind && systemctl restart nfs [root@kube data]#
创建PV
[root@kube pv-pvc]# cat p1.yaml apiVersion: v1 kind: PersistentVolume metadata: name: pv0001 spec: capacity: storage: 5Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Recycle storageClassName: slow nfs: path: /nfs/data/v1 server: 10.2.61.21 [root@kube pv-pvc]# [root@kube pv-pvc]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pv0001 5Gi RWO Recycle Available slow 20s [root@kube pv-pvc]#