iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0

容器和Pod是短暫的。其含義是它們的生命週期可能很短,會被頻繁地銷毀和創建。容器銷毀時,保存在容器的數據都會被清除。為了持久化保存容器的數據,可以使用Kubernetes Volume。

emptyDir

emptyDir是最基礎的Volume類型。正如其名字所示,一個emptyDir Volume是Host上的一個空目錄。emptyDir Volume對於容器來說是持久的,對於Pod則不是。當Pod從節點刪除時,Volume的內容也會被刪除。但如果只是容器被銷毀而Pod還在,則Volume不受影響。也就是說:emptyDir Volume的生命週期與Pod一致。

emptydir.yaml

apiVersion: v1
kind: Pod
metadata:
  name: emptydir-demo
spec:
  containers:
  - image: ubuntu:20.04
    name: emptydir-demo
    volumeMounts:
    - mountPath: /emptydir-demo
      name: emptydir-demo
    args:
    - /bin/sh
    - -c
    - echo "hi" > /emptydir-demo/hi ; sleep 30000

  - image: ubuntu:20.04
    name: get-emptydir-demo
    volumeMounts:
    - mountPath: /get-emptydir-demo
      name: emptydir-demo
    args:
    - /bin/sh
    - -c
    - cat /get-emptydir-demo/hi ; sleep 30000

  volumes:
  - name: emptydir-demo
    emptyDir: {}                    

部屬emptydir.yaml並查看是否有讀到資料

root@master:/# kubectl apply -f emptydir.yaml 
pod/emptydir-demo created

root@master:/# kubectl get pod
NAME                              READY   STATUS    RESTARTS   AGE
emptydir-demo                     1/1     Running   0          5s

root@master:/# kubectl logs emptydir-demo get-emptydir-demo
hi

kubectl logs顯示容器get-emptydir-demo成功讀到了emptydir-demo寫入的數據,驗證了兩個容器共享emptyDir Volume。

PersistentVolume & PersistentVolumeClaim

PersistentVolume(PV)是外部存儲系統中的一塊存儲空間,由管理員創建和維護。與Volume一樣,PV具有持久性,生命週期獨立於Pod。

PersistentVolumeClaim(PVC)是對PV的申請(Claim)。 PVC通常由普通用戶創建和維護。需要為Pod分配存儲資源時,用戶可以創建一個PVC,指明存儲資源的容量大小和訪問模式(比如只讀)等信息,Kubernetes會查找並提供滿足條件的PV。


上一篇
Day8-Job&CronJob
下一篇
Day10-Secret
系列文
技能亂點的無名打工仔技能記錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言