Kubernetes(k8s)Volumes-emptyDir&hostPath

Volumes基本概念

Container(容器)中的磁盤文件是短暫的,當(dāng)容器崩潰時,kubelet會重新啟動容器,但最初的文件將丟失,Container會以最干凈的狀態(tài)啟動。另外,當(dāng)一個Pod運行多個Container時,各個容器可能需要共享一些文件。Kubernetes Volume可以解決這兩個問題。

emptyDir(一個pod中多個容器之間共享數(shù)據(jù))

和上述volume不同的是,如果刪除Pod,emptyDir卷中的數(shù)據(jù)也將被刪除,一般emptyDir卷用于Pod中的不同Container共享數(shù)據(jù)。它可以被掛載到相同或不同的路徑上。
默認情況下,emptyDir卷支持節(jié)點上的任何介質(zhì),可能是SSD、磁盤或網(wǎng)絡(luò)存儲,具體取決于自身的環(huán)境??梢詫mptyDir.medium字段設(shè)置為Memory,讓Kubernetes使用tmpfs(內(nèi)存支持的文件系統(tǒng)),雖然tmpfs非???,但是tmpfs在節(jié)點重啟時,數(shù)據(jù)同樣會被清除,并且設(shè)置的大小會被計入到Container的內(nèi)存限制當(dāng)中。
使用emptyDir卷的示例,直接指定emptyDir為{}即可:

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /cache
      name: cache-volume
  volumes:
  - name: cache-volume
    emptyDir: {}

hostPath(掛載宿主機文件到容器中)

hostPath卷可將節(jié)點上的文件或目錄掛載到Pod上,用于Pod自定義日志輸出或訪問Docker內(nèi)部的容器等。
使用hostPath卷的示例。將主機的/data目錄掛載到Pod的/test-pd目錄:

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /test-pd
      name: test-volume
  volumes:
  - name: test-volume
    hostPath:
      # directory location on host
      path: /data
      # this field is optional
      type: Directory

hostPath卷常用的type(類型)如下:
?type為空字符串:默認選項,意味著掛載hostPath卷之前不會執(zhí)行任何檢查。
?DirectoryOrCreate:如果給定的path不存在任何東西,那么將根據(jù)需要創(chuàng)建一個權(quán)限為0755的空目錄,和Kubelet具有相同的組和權(quán)限。
?Directory:目錄必須存在于給定的路徑下。
?FileOrCreate:如果給定的路徑不存儲任何內(nèi)容,則會根據(jù)需要創(chuàng)建一個空文件,權(quán)限設(shè)置為0644,和Kubelet具有相同的組和所有權(quán)。
?File:文件,必須存在于給定路徑中。
?Socket:UNIX套接字,必須存在于給定路徑中。
?CharDevice:字符設(shè)備,必須存在于給定路徑中。
?BlockDevice:塊設(shè)備,必須存在于給定路徑中。
總結(jié):

volumes:
      - name: share-volume
        emptyDir: {}
          #medium: Memory

      - name: timezone
        hostPath:
          path: /etc/timezone
          type: File
      - name: nfs-volume
        nfs:
          server: 192.168.0.204
          path: /data/nfs/test-dp
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容