1、創建NAS/NFS類型的PV
官方示例
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nfs
spec:
capacity: #容量配置
storage: 5Gi
volumeMode: Filesystem #卷的模式,目前支持Filesystem(文件系統)和Block(塊),其中Block類型需要后端存儲支持,默認為文件系統
accessModes: #PV的訪問策略
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle #PV的回收策略
storageClassName: nfs-slow #PV的類,一個特定類型的PV只能綁定到特定類別的PVC
mountOptions:
- hard
- nfsvers=4.1
nfs: #NFS服務配置
path: /tmp #NFS上的共享目錄
server: 172.17.0.2 #NFS的IP地址
根據上面的yaml文件配置,創建PV
需要注意:PV能創建成功,但不代表存儲一定能使用,需在Pod創建之后才能驗證可用性
2、創建HostPath類型的PV
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
labels:
type: local
spec:
storageClassName: hostpath
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath: # hostPath服務配置
path: "/mnt/data" # 宿主機路徑
3、PVC如何綁定到PV
a、創建NFS類型的PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc-claim
spec:
storageClassName: nfs-slow
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi # PVC的大小要小於等於PV
查看PV和PVC狀態,顯示已經綁定,但是生效與否還需使用Pod進行掛載測試
apiVersion: v1
kind: Pod
metadata:
name: nfs-pv-pod
spec:
volumes:
- name: task-pv-storage # Volume的名稱
persistentVolumeClaim:
claimName: nfs-pvc-claim # PVC的名稱
containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage
使用上面的yaml文件創建pod資源,創建成功,進入Pod中查看nfs已掛載
這會兒,在nfs共享機器上創建index.html,並寫入“nfs”
再回到pod資源中查看掛載的目錄下,出現新創建的index.html文件,內容與剛才添加的一致