k8s emptyDir 和hostpath的使用

k8s emptyDir?和hostpath的使用

Volume類型

emptyDir

hostPath

Volume類型

volume是kubernetes Pod中多個容器訪問的共享目錄。volume被定義在pod上,被這個pod的多個容器掛載到相同或不同的路徑下。volume的生命周期與pod的生命周期相同,pod內(nèi)的容器停止和重啟時一般不會影響volume中的數(shù)據(jù)。所以一般volume被用于持久化pod產(chǎn)生的數(shù)據(jù)。

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

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

emptyDir

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

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

下面是一個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掛載宿主機上的目錄或文件,使得容器可以使用宿主機的高速文件系統(tǒng)進行存儲。缺點是,在k8s中,pod都是動態(tài)在各node節(jié)點上調(diào)度。當一個pod在當前node節(jié)點上啟動并通過hostPath存儲了文件到本地以后,下次調(diào)度到另一個節(jié)點上啟動時,就無法使用在之前節(jié)點上存儲的文件。

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

?著作權(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)容