溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

K8S中如何使用Volume存儲數據

發(fā)布時間:2021-08-03 14:54:01 來源:億速云 閱讀:129 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關K8S中如何使用Volume存儲數據,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Volume類型

Kubernetes提供了眾多的volume類型,現(xiàn)在列出一部分,具體可以參考官方文檔。

emptyDir,hostPath,gcePersistentDisk,awsElasticBlockStore,nfs,iscsi,flocker,glusterfs,rbd,cephfs,gitRepo,secret,persistentVolumeClaim,downwardAPI,azureFileVolume,azureDisk,vsphereVolume,Quobyte

1、emptyDir

emptyDir的生命周期與所屬的pod相同。pod刪除時,其emptyDir中的數據也會被刪除。

emptyDir類型的volume在pod分配到node上時被創(chuàng)建,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: {}

2、hostPath

pod刪除或者是調度到另外一個Node,原先Node上的存儲卷還在。

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

三、網絡存儲

Persistent Volume(持久化卷)簡稱PV,是一個K8S資源對象,我們可以單獨創(chuàng)建一個PV, 它不和Pod直接發(fā)生關系,而是通過Persistent Volume Claim(簡稱PVC)來實現(xiàn)動態(tài)綁定,我們會在Pod定義里指定創(chuàng)建好的PVC, 然后PVC會根據Pod的要求去自動綁定合適的PV給Pod使用。

持久化卷下PV和PVC概念:

Persistent Volume(PV)是由管理員設置的存儲,它是群集的一部分。就像節(jié)點是集群中的資源一樣,PV 也是集群中的資源。 PV 是 Volume 之類的卷插件,但具有獨立于使用 PV 的 Pod 的生命周期。此 API 對象包含存儲實現(xiàn)的細節(jié),即 NFS、iSCSI 或特定于云供應商的存儲系統(tǒng)

PersistentVolumeClaim(PVC)是用戶存儲的請求。它與 Pod 相似。Pod 消耗節(jié)點資源,PVC 消耗 PV 資源。Pod 可以請求特定級別的資源(CPU 和內存)。PVC聲明可以請求特定的大小和訪問模式(例如,可以以讀/寫一次或 只讀多次模式掛載)

它和普通Volume的區(qū)別是什么呢?

普通Volume和使用它的Pod之間是一種靜態(tài)綁定關系,在定義Pod的文件里,同時定義了它使用的Volume。Volume是Pod的附屬品,我們無法單獨創(chuàng)建一個Volume,因為它不是一個獨立的K8S資源對象。

關于K8S中如何使用Volume存儲數據就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI