k8s學習記錄【進階篇】,創建NAS或NFS類型的PV和HostPath類型的PV(二十四)


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
image

需要注意: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"  # 宿主機路徑

image

3、PVC如何綁定到PV

image

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進行掛載測試
image

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已掛載
image

這會兒,在nfs共享機器上創建index.html,並寫入“nfs”
image
再回到pod資源中查看掛載的目錄下,出現新創建的index.html文件,內容與剛才添加的一致
image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM