k8s emptyDir 使用



Volume類型
emptyDir
hostPath
Volume類型
volume是kubernetes Pod中多個容器訪問的共享目錄。volume被定義在pod上,被這個pod的多個容器掛載到相同或不同的路徑下。volume的生命周期與pod的生命周期相同,pod內的容器停止和重啟時一般不會影響volume中的數據。所以一般volume被用於持久化pod產生的數據。

Kubernetes提供了眾多的volume類型,包括emptyDir、hostPath、nfs、glusterfs、cephfs、ceph rbd等。具體可以參考官方文檔。

本篇文章我們簡單說下emptyDir和hostPath。

emptyDir
emptyDir類型的volume在pod分配到node上時被創建,kubernetes會在node上自動分配 一個目錄,因此無需指定宿主機node上對應的目錄文件。這個目錄的初始內容為空,當Pod從node上移除時,emptyDir中的數據會被永久刪除。

emptyDir Volume主要用於某些應用程序無需永久保存的臨時目錄,多個容器的共享目錄等。

下面是一個pod掛載emptyDir的示例:

apiVersion: v1
kind: Pod
metadata:
name: test-pod
spec:
containers:
- image: test-webserver
name: test-container
volumeMounts:
- name: cache-volume
mountPath: /cache
volumes:
- name: cache-volume
emptyDir: {}
hostPath
hostPath Volume為pod掛載宿主機上的目錄或文件,使得容器可以使用宿主機的高速文件系統進行存儲。缺點是,在k8s中,pod都是動態在各node節點上調度。當一個pod在當前node節點上啟動並通過hostPath存儲了文件到本地以后,下次調度到另一個節點上啟動時,就無法使用在之前節點上存儲的文件。

hostPath使用示例:

apiVersion: v1
kind: Pod
metadata:
name: test-pod
spec:
containers:
- image: test-webserver
name: test-container
volumeMounts:
- name: test-volume
mountPath: /www
volumes:
- name: test-volume
hostPath:
path: /data


免責聲明!

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



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