PersistentVolumeClaim(PVC)是用户存储请求。它类似于Pod。Pod消耗Node资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和内存)。PVC可以请求特定的大小和访问模式(例如,可以将它们安装为读/写一次或多次只读)的PV。
manifest示例
1 | apiVersion: v1 |
volumeMode
: 当请求使用特定访问模式进行存储时,PVC使用与PV相同的约定。resources
: PVC使用与PV相同的约定来表示将Volume作为文件系统或块设备使用。storageClassName
: PVC可以通过使用属性storageClassName
指定StorageClass
的名称来请求特定的StorageClass
。只能将具有与PVC相同的storageClassName的PV绑定到PVC。selector
: PVC可以指定标签选择器以进一步过滤Volume。仅其标签与选择器匹配的PV可以绑定到PVC。
创建PVC
1 | kubectl apply -f https://raw.githubusercontent.com/chengqing-su/kubernetes-learning/master/volumes/pvc-example.yaml |
获取PVC状态,如下:
获取PV状态,如下:
PVC as Volumes
Pod不能直接使用PV,需要通过PVC来使用
PVC必须与使用PVC的Pod在相同的namespace中。集群在Pod的namespace中找到PVC,并使用它来获取支持PVC的PersistentVolume。然后将卷安装到主机上并安装到Pod中。
创建一个nginx Pod并使用PVC。
1 | apiVersion: v1 |