kubernetes實踐之二十五:儲存卷 PV&PVC

百聯達發表於2018-04-26
一:體系結構圖


二:說明

1.單節點Volume是最簡單的普通Volume,它和Docker的儲存卷類似,使用的是Pod所在K8S節點的本地目錄。具體有兩種,一種是 emptyDir,是一個匿名的空目錄,由Kubernetes在建立Pod時建立,刪除Pod時刪除。另外一種是 hostPath,與emptyDir的區別是,它在Pod之外獨立存在,由使用者指定路徑名。這類和節點繫結的儲存卷在Pod遷移到其它節點後資料就會丟失,所以只能用於儲存臨時資料或用於在同一個Pod裡的容器之間共享資料。

2.普通Volume和使用它的Pod之間是一種靜態繫結關係,在定義Pod的檔案裡,同時定義了它使用的Volume。Volume 是Pod的附屬品,我們無法單獨建立一個Volume,因為它不是一個獨立的K8S資源物件。

3.Persistent Volume 簡稱PV是一個K8S資源物件,我們可以單獨建立一個PV。它不和Pod直接發生關係,而是透過Persistent Volume Claim,簡稱PVC來實現動態繫結。Pod定義裡指定的是PVC,然後PVC會根據Pod的要求去自動繫結合適的PV給Pod使用。

4.PV 定義舉例

點選(此處)摺疊或開啟

  1. apiVersion: v1
  2.   kind: PersistentVolume
  3.   metadata:
  4.     name: pv0003
  5.   spec:
  6.     capacity:
  7.       storage: 5Gi
  8.     accessModes:
  9.       - ReadWriteOnce
  10.     persistentVolumeReclaimPolicy: Recycle
  11.     storageClassName: slow
  12.     nfs:
  13.       path: /tmp
  14.       server: 172.17.0.2
5.PVC定義舉例

點選(此處)摺疊或開啟

  1. kind: PersistentVolumeClaim
  2. apiVersion: v1
  3. metadata:
  4.   name: myclaim
  5. spec:
  6.   accessModes:
  7.     - ReadWriteOnce
  8.   resources:
  9.     requests:
  10.       storage: 8Gi
  11.   storageClassName: slow
  12.   selector:
  13.     matchLabels:
  14.       release: "stable"
  15.     matchExpressions:
  16.       - {key: environment, operator: In, values: [dev]}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2153408/,如需轉載,請註明出處,否則將追究法律責任。

相關文章