iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
DevOps

今天不學遺傳學,跟著Kubernetes種豌豆系列 第 13

Day13. 資料不能亡,持久性儲存 Storage Class (下)

  • 分享至 

  • xImage
  •  

動態配置的關鍵角色 storage class

回顧 PV 和 PVC的週期有四個階段:

  1. 設置 provisioning: 設定可用的PV,分有2種方式
    • 靜態: 事先進行配置
    • 動態: 在PVC無可用PV時建立PV,此方法需要事先配置StorageClass
      • 取代靜態配置,未配置StorageClass時(標示為: ""),則為預設StorageClass
      • 關係為 StorageClass > PVC > PV
  2. 配對綁定 binding: PV和PVC雙向綁定,若無合適PV,則PVC呈現未綁定狀態
  3. 使用 using: 實際將PVC作為使用,PVC掛載到PV後,再掛載到該Pod
  4. 回收 reclaiming: PV和PVC解除綁定狀態

Storage class顧名思義,為有關儲存的類別,用來滿足PVC的動態設置,相較於靜態配置,不需事先設置PV,在建立PVC時,視Storage class屬性及PVC的需求,創造出完全符合的PV,如此一來也較有效率使用資源,Storage class有各類的policies,欄位有設置provisioner、各類參數parameters及回收政策reclaimPolicy

  • provisioner(必備): 指定volume plugin
  • reclaimPolicy: 刪除delete(預設)、保留retain
  • parameters: 參數與provisioner設定相關,敘述哪個volume屬於此storage Class,沒設定的話,會有一些預設值
  • Volume binding mode: 表示PVC建立後,volume綁定跟動態配置的起始時機點
    • Immediate(預設): 小缺點是不知道pod的分配狀態
    • WaitForFirstConsumer: 直到pod要使用的PVC建立完成,才會讓PVC去綁定PV
# 建立storage class
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: itHome-storage
provisioner: kubernetes.io/gce-pd
volumeBindingMode: WaitForFirstConsumer

# 建立pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata: 
  name: myclaim
spec:
  accessModes:
      - ReadWriteOnce
  # 指定所屬storage class
  storageClassName: itHome-storage
  resources:
    requests:
      storage: 500Mi
      

上一篇
Day12. 資料不能亡,持久性儲存- PV與PVC(中)
下一篇
Day14. 通訊安全,層層把關
系列文
今天不學遺傳學,跟著Kubernetes種豌豆30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言