卷配置
概述
卷配置涉及创建一个PersistentVolumeClaim使用默认设置directpv-min-io存储类或具有directpv-min-ioprovisioner.
存储类附带卷绑定模式等待首个消费者此模式延迟卷绑定和预配,直到PersistentVolume直到一个Pod使用PersistentVolumeClaim已创建。
DirectPV 选择或配置PersistentVolumes这些约束条件需与Pod调度约束所指定的拓扑结构相匹配。
包括但不限于资源需求、节点选择器、Pod亲和性与反亲和性、污点和容忍度等。
使用存储卷的Pod会被调度到已分配对应存储卷的节点上。
这确保了Pod能够实现高性能的数据访问。
A DirectPV volume inReadystate indicates that the volume is ready for binding to the pod.
After binding,Bound状态已设置为音量。
创建持久卷声明
PersistentVolume 声明必须使用特定参数在PersistentVolumeClaim规范。
这些参数是:
| 参数 | 值 |
|---|---|
volumeMode |
Filesystem |
storageClassName |
directpv-min-io或任何存储类名称包含directpv-min-io配置器 |
accessModes |
[ "ReadWriteOnce" ] |
以下是一个示例声称8MiB存储来自directpv-min-io存储类sleep-pvcPVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sleep-pvc
spec:
volumeMode: Filesystem
storageClassName: directpv-min-io
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 8Mi
对于WaitForFirstConsumervolume binding mode,一个 pod 消耗sleep-pvc必须定义。
以下是一个使用示例sleep-volume安装于/mnt:
apiVersion: v1
kind: Pod
metadata:
name: sleep-pod
spec:
volumes:
- name: sleep-volume
persistentVolumeClaim:
claimName: sleep-pvc
containers:
- name: sleep-container
image: example.org/test/sleep:v0.0.1
volumeMounts:
- mountPath: "/mnt"
name: sleep-volume
在 StatefulSet 中创建持久卷声明
PV 声明必须使用特定参数进行定义volumeClaimTemplates规范。
这些参数是:
| 参数 | 值 |
|---|---|
storageClassName |
directpv-min-io或任何存储类名称包含directpv-min-io配置器 |
accessModes |
[ "ReadWriteOnce" ] |
以下是一个声称两个16MiB存储来自directpv-min-io存储类minio-data-1和minio-data-2PVC 到两个miniopods:
kind: Service
apiVersion: v1
metadata:
name: minio
labels:
app: minio
spec:
selector:
app: minio
ports:
- name: minio
port: 9000
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: minio
labels:
app: minio
spec:
serviceName: "minio"
replicas: 2
selector:
matchLabels:
app: minio
template:
metadata:
labels:
app: minio
directpv.min.io/organization: minio
directpv.min.io/app: minio-example
directpv.min.io/tenant: tenant-1
spec:
containers:
- name: minio
image: minio/minio
env:
- name: MINIO_ACCESS_KEY
value: minio
- name: MINIO_SECRET_KEY
value: minio123
volumeMounts:
- name: minio-data-1
mountPath: /data1
- name: minio-data-2
mountPath: /data2
args:
- "server"
- "http://minio-{0...1}.minio.default.svc.cluster.local:9000/data{1...2}"
volumeClaimTemplates:
- metadata:
name: minio-data-1
spec:
storageClassName: directpv-min-io
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 16Mi
- metadata:
name: minio-data-2
spec:
storageClassName: directpv-min-io
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 16Mi