您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關K8S中如何使用Volume存儲數據,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Kubernetes提供了眾多的volume類型,現在列出一部分,具體可以參考官方文檔。
emptyDir,hostPath,gcePersistentDisk,awsElasticBlockStore,nfs,iscsi,flocker,glusterfs,rbd,cephfs,gitRepo,secret,persistentVolumeClaim,downwardAPI,azureFileVolume,azureDisk,vsphereVolume,Quobyte
emptyDir的生命周期與所屬的pod相同。pod刪除時,其emptyDir中的數據也會被刪除。
emptyDir類型的volume在pod分配到node上時被創建,kubernetes會在node上自動分配 一個目錄,因此無需指定宿主機node上對應的目錄文件。
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: {}
pod刪除或者是調度到另外一個Node,原先Node上的存儲卷還在。
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
Persistent Volume(持久化卷)簡稱PV,是一個K8S資源對象,我們可以單獨創建一個PV, 它不和Pod直接發生關系,而是通過Persistent Volume Claim(簡稱PVC)來實現動態綁定,我們會在Pod定義里指定創建好的PVC, 然后PVC會根據Pod的要求去自動綁定合適的PV給Pod使用。
持久化卷下PV和PVC概念:
Persistent Volume(PV)是由管理員設置的存儲,它是群集的一部分。就像節點是集群中的資源一樣,PV 也是集群中的資源。 PV 是 Volume 之類的卷插件,但具有獨立于使用 PV 的 Pod 的生命周期。此 API 對象包含存儲實現的細節,即 NFS、iSCSI 或特定于云供應商的存儲系統
PersistentVolumeClaim(PVC)是用戶存儲的請求。它與 Pod 相似。Pod 消耗節點資源,PVC 消耗 PV 資源。Pod 可以請求特定級別的資源(CPU 和內存)。PVC聲明可以請求特定的大小和訪問模式(例如,可以以讀/寫一次或 只讀多次模式掛載)
它和普通Volume的區別是什么呢?
普通Volume和使用它的Pod之間是一種靜態綁定關系,在定義Pod的文件里,同時定義了它使用的Volume。Volume是Pod的附屬品,我們無法單獨創建一個Volume,因為它不是一個獨立的K8S資源對象。
關于K8S中如何使用Volume存儲數據就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。