日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 知識百科

通過 Kubernetes CSI 實現(xiàn) Longhorn 卷快照備份、恢復(fù)、克隆與擴(kuò)容功能

來源: 責(zé)編: 時間:2023-08-07 16:29:57 288觀看
導(dǎo)讀 前文我們介紹了通過 Longhorn UI 可以對卷進(jìn)行快照、備份恢復(fù)等功能,此外我們還可以通過 Kubernetes 來實現(xiàn)對卷的管理,比如可以在集群上通過 CSI 來實現(xiàn)快照、備份恢復(fù)、克隆

前文我們介紹了通過 Longhorn UI 可以對卷進(jìn)行快照、備份恢復(fù)等功能,此外我們還可以通過 Kubernetes 來實現(xiàn)對卷的管理,比如可以在集群上通過 CSI 來實現(xiàn)快照、備份恢復(fù)、克隆、擴(kuò)容等功能支持。mLo28資訊網(wǎng)——每日最新資訊28at.com

mLo28資訊網(wǎng)——每日最新資訊28at.com

CSI 卷快照mLo28資訊網(wǎng)——每日最新資訊28at.com

Kubernetes 從 1.12 版本開始引入了存儲卷快照功能,在 1.17 版本進(jìn)入 Beta 版本,和 PV、PVC 兩個資源對象類似,Kubernetes 提供了 VolumeSnapshotContent、VolumeSnapshot、VolumeSnapshotClass 三個資源對象用于卷快照管理。mLo28資訊網(wǎng)——每日最新資訊28at.com

mLo28資訊網(wǎng)——每日最新資訊28at.com

概念mLo28資訊網(wǎng)——每日最新資訊28at.com

VolumeSnapshotContent 是基于某個 PV 創(chuàng)建的快照,類似于 PV 的資源概念;VolumeSnapshot 是用戶對卷快照的請求,類似于持久化聲明 PVC 的概念;VolumeSnapshotClass 對象可以來設(shè)置快照的特性,屏蔽 VolumeSnapshotContent 的細(xì)節(jié),為 VolumeSnapshot 綁定提供動態(tài)管理,就像 StorageClass 的“類”概念。mLo28資訊網(wǎng)——每日最新資訊28at.com

卷快照能力為 Kubernetes 用戶提供了一種標(biāo)準(zhǔn)的方式來在指定時間點復(fù)制卷的內(nèi)容,并且不需要創(chuàng)建全新的卷,比如數(shù)據(jù)庫管理員可以在執(zhí)行編輯或刪除之類的修改之前對數(shù)據(jù)庫執(zhí)行備份。mLo28資訊網(wǎng)——每日最新資訊28at.com

但是在使用該功能時,需要注意以下幾點:mLo28資訊網(wǎng)——每日最新資訊28at.com

VolumeSnapshot、VolumeSnapshotContent 和 VolumeSnapshotClass 資源對象是 CRDs, 不屬于核心 API。VolumeSnapshot 支持僅可用于 CSI 驅(qū)動。作為 VolumeSnapshot 部署過程的一部分,Kubernetes 團(tuán)隊提供了一個部署于控制平面的快照控制器,并且提供了一個叫做 csi-snapshotter 的 Sidecar 容器,和 CSI 驅(qū)動程序一起部署,快照控制器會去監(jiān)聽 VolumeSnapshot 和 VolumeSnapshotContent 對象,并且負(fù)責(zé)創(chuàng)建和刪除 VolumeSnapshotContent 對象。csi-snapshotter 監(jiān)聽 VolumeSnapshotContent 對象,并且觸發(fā)針對 CSI 端點的 CreateSnapshot 和 DeleteSnapshot 的操作,完成快照的創(chuàng)建或刪除。CSI 驅(qū)動可能實現(xiàn),也可能沒有實現(xiàn)卷快照功能,CSI 驅(qū)動可能會使用 csi-snapshotter 來提供對卷快照的支持,詳見 CSI 驅(qū)動程序文檔(https://kubernetes-csi.github.io/docs/external-snapshotter.html)。mLo28資訊網(wǎng)——每日最新資訊28at.com

VolumeSnapshotContents 和 VolumeSnapshots 的生命周期包括資源供應(yīng)、資源綁定、對使用 PVC 的保護(hù)機(jī)制和資源刪除等各個階段,這兩個對象會遵循這些生命周期。mLo28資訊網(wǎng)——每日最新資訊28at.com

資源供應(yīng):與 PV 的資源供應(yīng)類似,VolumeSnapshotContent 也可以以靜態(tài)或動態(tài)兩種方式供應(yīng)資源。mLo28資訊網(wǎng)——每日最新資訊28at.com

靜態(tài)供應(yīng):集群管理員會預(yù)先創(chuàng)建好一組 VolumeSnapshotContent 資源,類似于手動創(chuàng)建 PV動態(tài)供應(yīng):基于 VolumeSnapshotClass 資源,當(dāng)用戶創(chuàng)建 VolumeSnapshot 申請時自動創(chuàng)建 VolumeSnapshotContent,類似于 StorageClass 動態(tài)創(chuàng)建 PVmLo28資訊網(wǎng)——每日最新資訊28at.com

資源綁定:快照控制器負(fù)責(zé)將 VolumeSnapshot 與一個合適的 VolumeSnapshotContent 進(jìn)行綁定,包括靜態(tài)和動態(tài)供應(yīng)兩種情況,VolumeSnapshot 和 VolumeSnapshotContent 之間也是一對一進(jìn)行綁定的,不會存在一對多的情況。mLo28資訊網(wǎng)——每日最新資訊28at.com

對使用中的PVC的保護(hù)機(jī)制:當(dāng)存儲快照 VolumeSnapshot 正在被創(chuàng)建且還未完成時,相關(guān)的 PVC 將會被標(biāo)記為正被使用中,如果用戶對 PVC 進(jìn)行刪除操作,系統(tǒng)不會立即刪除 PVC,以避免快照還未做完造成數(shù)據(jù)丟失,刪除操作會延遲到 VolumeSnapshot 創(chuàng)建完成(readyToUse 狀態(tài))或被終止(aborted 狀態(tài))的情況下完成。mLo28資訊網(wǎng)——每日最新資訊28at.com

資源刪除:對 VolumeSnapshot 發(fā)起刪除操作時,對與其綁定的后端 VolumeSnapshotContent 的刪除操作將基于刪除策略 DeletionPolicy 的設(shè)置來決定,可以配置的刪除策略有:mLo28資訊網(wǎng)——每日最新資訊28at.com

Delete:自動刪除 VolumeSnapshotContent 資源對象和快照的內(nèi)容。Retain:VolumeSnapshotContent 資源對象和快照的內(nèi)容都將保留,需要手動清理。mLo28資訊網(wǎng)——每日最新資訊28at.com

我們這里的 Longhorn 系統(tǒng)在部署完成后創(chuàng)建了3個 csi-snapshotter 的 Pod:mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl get pods -n longhorn-systemmLo28資訊網(wǎng)——每日最新資訊28at.com
NAME READY STATUS RESTARTS AGEmLo28資訊網(wǎng)——每日最新資訊28at.com
csi-snapshotter-86f65d8bc-9t7dd 1/1 Running 5 (126m ago) 2d17hmLo28資訊網(wǎng)——每日最新資訊28at.com
csi-snapshotter-86f65d8bc-d6xbj 1/1 Running 5 (126m ago) 2d17hmLo28資訊網(wǎng)——每日最新資訊28at.com
csi-snapshotter-86f65d8bc-dncwv 1/1 Running 5 (126m ago) 2d17hmLo28資訊網(wǎng)——每日最新資訊28at.com
......mLo28資訊網(wǎng)——每日最新資訊28at.com

這其實是啟動的3個副本,同一時間只有一個 Pod 提供服務(wù),通過 leader-election 來實現(xiàn)的選主高可用,比如當(dāng)前這里提供服務(wù)的是 csi-snapshotter-86f65d8bc-dncwv,我們可以查看對應(yīng)的日志信息:mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl logs -f csi-snapshotter-86f65d8bc-dncwv -n longhorn-systemmLo28資訊網(wǎng)——每日最新資訊28at.com
......mLo28資訊網(wǎng)——每日最新資訊28at.com
E0223 04:36:33.570567 1 reflector.go:127] github.com/kubernetes-csi/external-snapshotter/client/v3/informers/externalversions/factory.go:117: Failed to watch *v1beta1.VolumeSnapshotClass: failed to list *v1beta1.VolumeSnapshotClass: the server could not find the requested resource (get volumesnapshotclasses.snapshot.storage.k8s.io)mLo28資訊網(wǎng)——每日最新資訊28at.com
E0223 04:37:03.773447 1 reflector.go:127] github.com/kubernetes-csi/external-snapshotter/client/v3/informers/externalversions/factory.go:117: Failed to watch *v1beta1.VolumeSnapshotContent: failed to list *v1beta1.VolumeSnapshotContent: the server could not find the requested resource (get volumesnapshotcontents.snapshot.storage.k8s.io)mLo28資訊網(wǎng)——每日最新資訊28at.com

可以看到提示沒有 VolumeSnapshotClass 和 VolumeSnapshotContent 資源,這是因為這兩個資源都是 CRDs,并不是 Kubernetes 內(nèi)置的資源對象,而我們在安裝 Longhorn 的時候也沒有安裝這兩個 CRDs,所以找不到,要通過 CSI 來實現(xiàn)卷快照功能自然就需要先安裝 CRDs,我們可以從 https://github.com/kubernetes-csi/external-snapshotter 項目中來獲取:mLo28資訊網(wǎng)——每日最新資訊28at.com

? git clone https://github.com/kubernetes-csi/external-snapshottermLo28資訊網(wǎng)——每日最新資訊28at.com
? cd external-snapshotter && git checkout v5.0.1mLo28資訊網(wǎng)——每日最新資訊28at.com
? kubectl kustomize client/config/crd | kubectl create -f -mLo28資訊網(wǎng)——每日最新資訊28at.com

上面的命令會安裝上面提到的3個 Snapshot CRDs:mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl get crd |grep snapshotmLo28資訊網(wǎng)——每日最新資訊28at.com
volumesnapshotclasses.snapshot.storage.k8s.io 2022-02-23T05:31:34ZmLo28資訊網(wǎng)——每日最新資訊28at.com
volumesnapshotcontents.snapshot.storage.k8s.io 2022-02-23T05:31:34ZmLo28資訊網(wǎng)——每日最新資訊28at.com
volumesnapshots.snapshot.storage.k8s.io 2022-02-23T05:31:34ZmLo28資訊網(wǎng)——每日最新資訊28at.com

安裝完成后再去查看上面的 csi-snapshotter 相關(guān)的 Pod 日志就正常了。CRDs 安裝完成后還不夠,我們還需要一個快照控制器來監(jiān)聽 VolumeSnapshot 和 VolumeSnapshotContent 對象,同樣 external-snapshotter 項目中也提供了一個 Common Snapshot Controller,執(zhí)行下面的命令一鍵安裝:mLo28資訊網(wǎng)——每日最新資訊28at.com

# 修改 deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml 鏡像地址為 cnych/csi-snapshot-controller:v5.0.0,默認(rèn)為 gcr 鏡像mLo28資訊網(wǎng)——每日最新資訊28at.com
? kubectl -n kube-system kustomize deploy/kubernetes/snapshot-controller | kubectl create -f -mLo28資訊網(wǎng)——每日最新資訊28at.com

這里我們將快照控制器安裝到了 kube-system 命名空間下,啟動兩個副本,同樣同一時間只有一個 Pod 提供服務(wù):mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl get pods -n kube-system -l app=snapshot-controllermLo28資訊網(wǎng)——每日最新資訊28at.com
NAME READY STATUS RESTARTS AGEmLo28資訊網(wǎng)——每日最新資訊28at.com
snapshot-controller-677b65dc6c-288w9 1/1 Running 0 3m22smLo28資訊網(wǎng)——每日最新資訊28at.com
snapshot-controller-677b65dc6c-zgdcm 1/1 Running 0 39smLo28資訊網(wǎng)——每日最新資訊28at.com

到這里就將使用 CSI 來配置快照的環(huán)境準(zhǔn)備好了。mLo28資訊網(wǎng)——每日最新資訊28at.com

測試mLo28資訊網(wǎng)——每日最新資訊28at.com

下面我們?nèi)匀灰郧懊娴?mysql-pvc 這個卷為例來說明下如何使用卷快照功能:mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl get pvc mysql-pvcmLo28資訊網(wǎng)——每日最新資訊28at.com
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEmLo28資訊網(wǎng)——每日最新資訊28at.com
mysql-pvc Bound pvc-ec17a7e4-7bb4-4456-9380-353db3ed4307 1Gi RWO longhorn 2d18hmLo28資訊網(wǎng)——每日最新資訊28at.com

要創(chuàng)建 mysql-pvc 的快照申請,首先需要創(chuàng)建一個 VolumeSnapshot 對象:mLo28資訊網(wǎng)——每日最新資訊28at.com

# snapshot-mysql.yamlmLo28資訊網(wǎng)——每日最新資訊28at.com
apiVersion: snapshot.storage.k8s.io/v1mLo28資訊網(wǎng)——每日最新資訊28at.com
kind: VolumeSnapshotmLo28資訊網(wǎng)——每日最新資訊28at.com
metadata:mLo28資訊網(wǎng)——每日最新資訊28at.com
name: mysql-snapshot-demomLo28資訊網(wǎng)——每日最新資訊28at.com
spec:mLo28資訊網(wǎng)——每日最新資訊28at.com
volumeSnapshotClassName: longhornmLo28資訊網(wǎng)——每日最新資訊28at.com
source:mLo28資訊網(wǎng)——每日最新資訊28at.com
persistentVolumeClaimName: mysql-pvcmLo28資訊網(wǎng)——每日最新資訊28at.com
# volumeSnapshotContentName: test-contentmLo28資訊網(wǎng)——每日最新資訊28at.com

其中就兩個主要配置參數(shù):mLo28資訊網(wǎng)——每日最新資訊28at.com

volumeSnapshotClassName:指定 VolumeSnapshotClass 的名稱,這樣就可以動態(tài)創(chuàng)建一個對應(yīng)的 VolumeSnapshotContent 與之綁定,如果沒有指定該參數(shù),則屬于靜態(tài)方式,需要手動創(chuàng)建 VolumeSnapshotContent。persistentVolumeClaimName:指定數(shù)據(jù)來源的 PVC 名稱。volumeSnapshotContentName:如果是申請靜態(tài)存儲快照,則需要通過該參數(shù)來指定一個 VolumeSnapshotContent。mLo28資訊網(wǎng)——每日最新資訊28at.com

上面我們指定了一個存儲快照類 longhorn,當(dāng)然需要創(chuàng)建這個對象:mLo28資訊網(wǎng)——每日最新資訊28at.com

# snapshotclass.yamlmLo28資訊網(wǎng)——每日最新資訊28at.com
apiVersion: snapshot.storage.k8s.io/v1mLo28資訊網(wǎng)——每日最新資訊28at.com
kind: VolumeSnapshotClassmLo28資訊網(wǎng)——每日最新資訊28at.com
metadata:mLo28資訊網(wǎng)——每日最新資訊28at.com
name: longhornmLo28資訊網(wǎng)——每日最新資訊28at.com
# annotations: # 如果要指定成默認(rèn)的快照類mLo28資訊網(wǎng)——每日最新資訊28at.com
# snapshot.storage.kubernetes.io/is-default-class: "true"mLo28資訊網(wǎng)——每日最新資訊28at.com
driver: driver.longhorn.iomLo28資訊網(wǎng)——每日最新資訊28at.com
deletionPolicy: DeletemLo28資訊網(wǎng)——每日最新資訊28at.com

每個 VolumeSnapshotClass 都包含 driver、deletionPolicy 和 parameters 字段,在需要動態(tài)配置屬于該類的 VolumeSnapshot 時使用。mLo28資訊網(wǎng)——每日最新資訊28at.com

driver:表示 CSI 存儲插件驅(qū)動的名稱,這里我們使用的是 Longhorn 插件,名為 driver.longhorn.iodeletionPolicy:刪除策略,可以設(shè)置為 Delete 或 Retain,如果刪除策略是 Delete,那么底層的存儲快照會和 VolumeSnapshotContent 對象一起刪除,如果刪除策略是 Retain,那么底層快照和 VolumeSnapshotContent 對象都會被保留。parameters:存儲插件需要配置的參數(shù),由 CSI 驅(qū)動提供具體的配置參數(shù)。mLo28資訊網(wǎng)——每日最新資訊28at.com

如果想將當(dāng)前快照類設(shè)置成默認(rèn)的則需要添加 snapshot.storage.kubernetes.io/is-default-class: "true" 這樣的 annotations。mLo28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在我們直接創(chuàng)建上面的兩個資源對象:mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl apply -f snapshotclass.yamlmLo28資訊網(wǎng)——每日最新資訊28at.com
volumesnapshotclass.snapshot.storage.k8s.io/longhorn createdmLo28資訊網(wǎng)——每日最新資訊28at.com
? kubectl apply -f snapshot-mysql.yamlmLo28資訊網(wǎng)——每日最新資訊28at.com
volumesnapshot.snapshot.storage.k8s.io/mysql-snapshot-demo createdmLo28資訊網(wǎng)——每日最新資訊28at.com
? kubectl get volumesnapshotclassmLo28資訊網(wǎng)——每日最新資訊28at.com
NAME DRIVER DELETIONPOLICY AGEmLo28資訊網(wǎng)——每日最新資訊28at.com
longhorn driver.longhorn.io Delete 43smLo28資訊網(wǎng)——每日最新資訊28at.com
? kubectl get volumesnapshotmLo28資訊網(wǎng)——每日最新資訊28at.com
NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGEmLo28資訊網(wǎng)——每日最新資訊28at.com
mysql-snapshot-demo true mysql-pvc 1Gi longhorn snapcontent-1119649a-d4f2-447f-a21a-e527f202e43e 43s 43smLo28資訊網(wǎng)——每日最新資訊28at.com

這個時候會動態(tài)為我們創(chuàng)建一個 VolumeSnapshotContent 對象:mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl get volumesnapshotcontentmLo28資訊網(wǎng)——每日最新資訊28at.com
NAME READYTOUSE RESTORESIZE DELETIONPOLICY DRIVER VOLUMESNAPSHOTCLASS VOLUMESNAPSHOT VOLUMESNAPSHOTNAMESPACE AGEmLo28資訊網(wǎng)——每日最新資訊28at.com
snapcontent-1119649a-d4f2-447f-a21a-e527f202e43e true 1073741824 Delete driver.longhorn.io longhorn mysql-snapshot-demo default 97smLo28資訊網(wǎng)——每日最新資訊28at.com

自動創(chuàng)建的 VolumeSnapshotContent 對象內(nèi)容如下所示:mLo28資訊網(wǎng)——每日最新資訊28at.com

apiVersion: snapshot.storage.k8s.io/v1mLo28資訊網(wǎng)——每日最新資訊28at.com
kind: VolumeSnapshotContentmLo28資訊網(wǎng)——每日最新資訊28at.com
metadata:mLo28資訊網(wǎng)——每日最新資訊28at.com
name: snapcontent-1119649a-d4f2-447f-a21a-e527f202e43emLo28資訊網(wǎng)——每日最新資訊28at.com
spec:mLo28資訊網(wǎng)——每日最新資訊28at.com
deletionPolicy: DeletemLo28資訊網(wǎng)——每日最新資訊28at.com
driver: driver.longhorn.iomLo28資訊網(wǎng)——每日最新資訊28at.com
source:mLo28資訊網(wǎng)——每日最新資訊28at.com
volumeHandle: pvc-ec17a7e4-7bb4-4456-9380-353db3ed4307mLo28資訊網(wǎng)——每日最新資訊28at.com
volumeSnapshotClassName: longhornmLo28資訊網(wǎng)——每日最新資訊28at.com
volumeSnapshotRef:mLo28資訊網(wǎng)——每日最新資訊28at.com
apiVersion: snapshot.storage.k8s.io/v1mLo28資訊網(wǎng)——每日最新資訊28at.com
kind: VolumeSnapshotmLo28資訊網(wǎng)——每日最新資訊28at.com
name: mysql-snapshot-demomLo28資訊網(wǎng)——每日最新資訊28at.com
namespace: defaultmLo28資訊網(wǎng)——每日最新資訊28at.com
resourceVersion: "4967456"mLo28資訊網(wǎng)——每日最新資訊28at.com
uid: 1119649a-d4f2-447f-a21a-e527f202e43emLo28資訊網(wǎng)——每日最新資訊28at.com
status:mLo28資訊網(wǎng)——每日最新資訊28at.com
creationTime: 1645597546000000000mLo28資訊網(wǎng)——每日最新資訊28at.com
readyToUse: truemLo28資訊網(wǎng)——每日最新資訊28at.com
restoreSize: 1073741824mLo28資訊網(wǎng)——每日最新資訊28at.com
snapshotHandle: bs://pvc-ec17a7e4-7bb4-4456-9380-353db3ed4307/backup-f5f28fd624a148edmLo28資訊網(wǎng)——每日最新資訊28at.com

其中的 source.volumeHandle 字段的值是在后端存儲上創(chuàng)建并由 CSI 驅(qū)動在創(chuàng)建存儲卷期間返回的 Volume 的唯一標(biāo)識符,在動態(tài)供應(yīng)模式下需要該字段,指定的是快照的來源 Volume 信息,volumeSnapshotRef 下面就是和關(guān)聯(lián)的 VolumeSnapshot 對象的相關(guān)信息。當(dāng)然這個時候我們在 Longhorn UI 界面上也可以看到上面我們創(chuàng)建的這個快照了,快照名稱為 snapshot-1119649a-d4f2-447f-a21a-e527f202e43e,后面的 ID 與上面的 VolumeSnapshotContent 名稱保持一致:mLo28資訊網(wǎng)——每日最新資訊28at.com

mLo28資訊網(wǎng)——每日最新資訊28at.com

并且也會進(jìn)行一次對應(yīng)的 Backup 操作,備份的信息通過 snapshotHandle 進(jìn)行指定的,格式為 bs://backup-/backup-:mLo28資訊網(wǎng)——每日最新資訊28at.com

mLo28資訊網(wǎng)——每日最新資訊28at.com

這樣我們就完成了通過 CSI 實現(xiàn)卷的快照管理功能。mLo28資訊網(wǎng)——每日最新資訊28at.com

CSI 卷恢復(fù)mLo28資訊網(wǎng)——每日最新資訊28at.com

Kubernetes 對基于快照創(chuàng)建存儲卷在 1.17 版本更新到了 Beta 版本,要啟用該特性,就需要在 kube-apiserver、kube-controller-manager 和 kubelet 的 Feature Gate 中啟用 --feature-gates=...,VolumeSnapshotDataSource(我們這里是1.22版本默認(rèn)已經(jīng)啟用了),然后就可以基于某個快照創(chuàng)建一個新的 PVC 存儲卷了,比如現(xiàn)在我們來基于上面創(chuàng)建的 mysql-snapshot-demo 這個對象來創(chuàng)建一個新的 PVC:mLo28資訊網(wǎng)——每日最新資訊28at.com

# restore-mysql.yamlmLo28資訊網(wǎng)——每日最新資訊28at.com
apiVersion: v1mLo28資訊網(wǎng)——每日最新資訊28at.com
kind: PersistentVolumeClaimmLo28資訊網(wǎng)——每日最新資訊28at.com
metadata:mLo28資訊網(wǎng)——每日最新資訊28at.com
name: mysql-restore-pvcmLo28資訊網(wǎng)——每日最新資訊28at.com
spec:mLo28資訊網(wǎng)——每日最新資訊28at.com
storageClassName: longhornmLo28資訊網(wǎng)——每日最新資訊28at.com
accessModes:mLo28資訊網(wǎng)——每日最新資訊28at.com
- ReadWriteOncemLo28資訊網(wǎng)——每日最新資訊28at.com
resources:mLo28資訊網(wǎng)——每日最新資訊28at.com
requests:mLo28資訊網(wǎng)——每日最新資訊28at.com
storage: 1GimLo28資訊網(wǎng)——每日最新資訊28at.com
dataSource:mLo28資訊網(wǎng)——每日最新資訊28at.com
apiGroup: snapshot.storage.k8s.iomLo28資訊網(wǎng)——每日最新資訊28at.com
kind: VolumeSnapshotmLo28資訊網(wǎng)——每日最新資訊28at.com
name: mysql-snapshot-demomLo28資訊網(wǎng)——每日最新資訊28at.com

上面的 PVC 對象和我們平時聲明的方式基本一致,唯一不同的是通過一個 dataSource 字段配置了基于名為 mysql-snapshot-demo 的存儲快照進(jìn)行創(chuàng)建,創(chuàng)建上面的資源對象后同樣會自動創(chuàng)建一個 PV 與之綁定:mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl get pvc mysql-restore-pvcmLo28資訊網(wǎng)——每日最新資訊28at.com
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEmLo28資訊網(wǎng)——每日最新資訊28at.com
mysql-restore-pvc Bound pvc-e4ddd985-31a8-4570-b393-dcedec3b0d95 1Gi RWO longhorn 17smLo28資訊網(wǎng)——每日最新資訊28at.com

在 Longhorn UI 中去查看該卷,可以看到該卷的實際大小并不為0,這是因為我們是從快照中創(chuàng)建過來的,相當(dāng)于從上面的快照中恢復(fù)的數(shù)據(jù):mLo28資訊網(wǎng)——每日最新資訊28at.com

mLo28資訊網(wǎng)——每日最新資訊28at.com

卷克隆mLo28資訊網(wǎng)——每日最新資訊28at.com

除了基于快照創(chuàng)建新的 PVC 對象之外,CSI 類型的存儲還支持存儲的克隆功能,可以基于已經(jīng)存在的 PVC 克隆一個新的 PVC,實現(xiàn)方式也是通過在 dataSource 字段中來設(shè)置源 PVC 來實現(xiàn)。mLo28資訊網(wǎng)——每日最新資訊28at.com

mLo28資訊網(wǎng)——每日最新資訊28at.com

克隆一個 PVC 其實就是對已存在的存儲卷創(chuàng)建一個副本,唯一的區(qū)別是,系統(tǒng)在為克隆 PVC 提供后端存儲資源時,不是新建一個空的 PV,而是復(fù)制一個與原 PVC 綁定 PV 完全一樣的 PV。mLo28資訊網(wǎng)——每日最新資訊28at.com

從 Kubernetes API 的角度看,克隆的實現(xiàn)只是在創(chuàng)建新的 PVC 時, 增加了指定一個現(xiàn)有 PVC 作為數(shù)據(jù)源的能力。源 PVC 必須是 bound 狀態(tài)且可用的(不在使用中)。mLo28資訊網(wǎng)——每日最新資訊28at.com

用戶在使用該功能時,需要注意以下事項:mLo28資訊網(wǎng)——每日最新資訊28at.com

克隆僅適用于 CSI 驅(qū)動克隆僅適用于動態(tài)供應(yīng)克隆功能取決于具體的 CSI 驅(qū)動是否實現(xiàn)該功能要求目標(biāo) PVC 和源 PVC 必須處于同一個命名空間只支持在相同的 StorageClass 中(可以使用默認(rèn)的)兩個存儲卷的存儲模式(VolumeMode)要一致mLo28資訊網(wǎng)——每日最新資訊28at.com

同樣我們來對前面的 mysql-pvc 這個存儲卷進(jìn)行克隆操作,對應(yīng)的 PVC 聲明如下所示:mLo28資訊網(wǎng)——每日最新資訊28at.com

apiVersion: v1mLo28資訊網(wǎng)——每日最新資訊28at.com
kind: PersistentVolumeClaimmLo28資訊網(wǎng)——每日最新資訊28at.com
metadata:mLo28資訊網(wǎng)——每日最新資訊28at.com
name: mysql-clone-pvcmLo28資訊網(wǎng)——每日最新資訊28at.com
spec:mLo28資訊網(wǎng)——每日最新資訊28at.com
accessModes:mLo28資訊網(wǎng)——每日最新資訊28at.com
- ReadWriteOncemLo28資訊網(wǎng)——每日最新資訊28at.com
storageClassName: longhornmLo28資訊網(wǎng)——每日最新資訊28at.com
resources:mLo28資訊網(wǎng)——每日最新資訊28at.com
requests:mLo28資訊網(wǎng)——每日最新資訊28at.com
storage: 1Gi # 必須大于或等于源的值mLo28資訊網(wǎng)——每日最新資訊28at.com
dataSource:mLo28資訊網(wǎng)——每日最新資訊28at.com
kind: PersistentVolumeClaimmLo28資訊網(wǎng)——每日最新資訊28at.com
name: mysql-pvcmLo28資訊網(wǎng)——每日最新資訊28at.com

該 PVC 和源 PVC 聲明一樣的配置,唯一不同的是通過 dataSource 指定了源 PVC 的名稱,直接創(chuàng)建這個資源對象,結(jié)果是 mysql-clone-pvc 這個新的 PVC 與源 mysql-pvc 擁有相同的數(shù)據(jù)。mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl get pvc mysql-clone-pvcmLo28資訊網(wǎng)——每日最新資訊28at.com
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEmLo28資訊網(wǎng)——每日最新資訊28at.com
mysql-clone-pvc Bound pvc-58eab5f0-a386-435c-91f4-0c26f7935695 1Gi RWO longhorn 31smLo28資訊網(wǎng)——每日最新資訊28at.com

在 Longhorn UI 頁面中也可以看到對應(yīng)的卷:mLo28資訊網(wǎng)——每日最新資訊28at.com

mLo28資訊網(wǎng)——每日最新資訊28at.com

一旦新的 PVC 可用,被克隆的 PVC 就可以像其他 PVC 一樣被使用了,也可以對其進(jìn)行克隆、快照、刪除等操作。mLo28資訊網(wǎng)——每日最新資訊28at.com

卷動態(tài)擴(kuò)容mLo28資訊網(wǎng)——每日最新資訊28at.com

我們知道對于存儲來說擴(kuò)容是一個非常重要的需求,對于 Kubernetes 中的卷動態(tài)擴(kuò)容同樣也是需要的基本功能,PV 要做擴(kuò)容操作是需要底層存儲支持該操作才能實現(xiàn),Longhorn 底層是支持卷擴(kuò)容操作的,但是要求擴(kuò)展的卷必須處于 detached 狀態(tài)才能操作,有兩種方法可以擴(kuò)容 Longhorn 卷:修改 PVC 和使用 Longhorn UI。mLo28資訊網(wǎng)——每日最新資訊28at.com

通過 Longhorn UI 操作比較簡單,直接在頁面中選擇要擴(kuò)容的卷,在操作中選擇 Expand Volume 進(jìn)行操作即可:mLo28資訊網(wǎng)——每日最新資訊28at.com

mLo28資訊網(wǎng)——每日最新資訊28at.com

要通過 PVC 來進(jìn)行擴(kuò)容首先需要 PVC 由 Longhorn StorageClass 進(jìn)行動態(tài)供應(yīng),并且在 StorageClass 中 allowVolumeExpansion 屬性設(shè)置為 true,建議使用這種方法,因為 PVC 和 PV 會自動更新,并且在擴(kuò)容后都會保持一致。比如上面使用的 mysql-clone-pvc 這個卷(處于 detached 狀態(tài))使用的 longhorn 這個 StorageClass 中就已經(jīng)配置了 allowVolumeExpansion: true,然后直接修改 mysql-pvc 這個卷下面的 spec.resources.requests.storage 值即可:mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl get pvc mysql-clone-pvcmLo28資訊網(wǎng)——每日最新資訊28at.com
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEmLo28資訊網(wǎng)——每日最新資訊28at.com
mysql-clone-pvc Bound pvc-58eab5f0-a386-435c-91f4-0c26f7935695 1Gi RWO longhorn 40mmLo28資訊網(wǎng)——每日最新資訊28at.com
? kubectl patch pvc mysql-clone-pvc -p '{"spec":{"resources":{"requests":{"storage":"2Gi"}}}}}'mLo28資訊網(wǎng)——每日最新資訊28at.com

修改后可以查看該 PVC 的 events 信息:mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl describe pvc mysql-clone-pvcmLo28資訊網(wǎng)——每日最新資訊28at.com
......mLo28資訊網(wǎng)——每日最新資訊28at.com
Events:mLo28資訊網(wǎng)——每日最新資訊28at.com
Type Reason Age From MessagemLo28資訊網(wǎng)——每日最新資訊28at.com
---- ------ ---- ---- -------mLo28資訊網(wǎng)——每日最新資訊28at.com
......mLo28資訊網(wǎng)——每日最新資訊28at.com
Normal Resizing 14s external-resizer driver.longhorn.io External resizer is resizing volume pvc-58eab5f0-a386-435c-91f4-0c26f7935695mLo28資訊網(wǎng)——每日最新資訊28at.com
Warning ExternalExpanding 14s volume_expand Ignoring the PVC: didn't find a plugin capable of expanding the volume; waiting for an external controller to process this PVC.mLo28資訊網(wǎng)——每日最新資訊28at.com
Normal VolumeResizeSuccessful 2s external-resizer driver.longhorn.io Resize volume succeededmLo28資訊網(wǎng)——每日最新資訊28at.com

可以看到通過 external-resizer 組件實現(xiàn)了 Resize 操作,查看 PVC 和 PV 的大小驗證:mLo28資訊網(wǎng)——每日最新資訊28at.com

? kubectl get pvc mysql-clone-pvcmLo28資訊網(wǎng)——每日最新資訊28at.com
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEmLo28資訊網(wǎng)——每日最新資訊28at.com
mysql-clone-pvc Bound pvc-58eab5f0-a386-435c-91f4-0c26f7935695 2Gi RWO longhorn 43mmLo28資訊網(wǎng)——每日最新資訊28at.com
? kubectl get pv pvc-58eab5f0-a386-435c-91f4-0c26f7935695mLo28資訊網(wǎng)——每日最新資訊28at.com
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGEmLo28資訊網(wǎng)——每日最新資訊28at.com
pvc-58eab5f0-a386-435c-91f4-0c26f7935695 2Gi RWO Delete Bound default/mysql-clone-pvc longhorn 43mmLo28資訊網(wǎng)——每日最新資訊28at.com

可以看到 PVC 和 PV 中的容量都變成了 2Gi,證明擴(kuò)容成功了,通過 Longhorn UI 也可以查看到卷擴(kuò)容成功了:mLo28資訊網(wǎng)——每日最新資訊28at.com

mLo28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-119-2181-0.html通過 Kubernetes CSI 實現(xiàn) Longhorn 卷快照備份、恢復(fù)、克隆與擴(kuò)容功能

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 云計算開發(fā):Python3-List append()方法詳解

下一篇: Longhorn 高級使用之備份恢復(fù)與 ReadWriteMany

標(biāo)簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国产女主播一区二区| 欧美精品一区在线| 亚洲欧美日韩国产成人| 午夜精品久久久久久久白皮肤| 午夜视频久久久久久| 久久激情综合网| 美女精品在线观看| 欧美日韩亚洲综合| 国产伦精品一区二区三区| 一色屋精品视频在线观看网站| 亚洲肉体裸体xxxx137| 亚洲一区综合| 另类图片国产| 国产精品jvid在线观看蜜臀 | 欧美日韩免费高清一区色橹橹| 欧美性做爰毛片| 激情av一区二区| 一区二区三区不卡视频在线观看 | 1024精品一区二区三区| 欧美精品入口| 国产精品色在线| 在线观看一区欧美| 亚洲一区久久久| 久久综合伊人77777蜜臀| 欧美午夜精品一区| 在线观看亚洲精品视频| 亚洲一区二区欧美| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产日韩欧美在线播放不卡| 亚洲精品一区二区三区婷婷月| 欧美一区不卡| 欧美日韩国产综合网| 好吊日精品视频| 亚洲伊人色欲综合网| 欧美电影在线观看| 国产永久精品大片wwwapp| 一区二区三区国产盗摄| 牛夜精品久久久久久久99黑人| 国产精品一区在线观看| 99在线精品观看| 免费不卡亚洲欧美| 国产伦精品一区二区三| 一本色道**综合亚洲精品蜜桃冫| 久久久综合视频| 国产免费成人| 亚洲午夜伦理| 欧美片在线观看| 亚洲国产精品久久久久秋霞蜜臀| 欧美一区二区三区在线观看| 欧美午夜片欧美片在线观看| 亚洲精品国产精品久久清纯直播| 久久久亚洲国产天美传媒修理工| 国产精品一区二区你懂得| 一本色道久久88综合亚洲精品ⅰ | 亚洲国产成人精品久久久国产成人一区| 性久久久久久久久久久久| 欧美三区免费完整视频在线观看| 亚洲欧洲一区二区三区久久| 老牛国产精品一区的观看方式| 国产永久精品大片wwwapp| 欧美伊人精品成人久久综合97| 国产精品久久77777| 亚洲美女精品久久| 欧美二区在线看| 亚洲成人自拍视频| 免播放器亚洲一区| 亚洲国产精品尤物yw在线观看| 久久久久久久精| 国一区二区在线观看| 久久激情视频久久| 国产亚洲美州欧州综合国| 午夜影视日本亚洲欧洲精品| 国产精品免费区二区三区观看| 亚洲一区二区三区精品视频| 欧美吻胸吃奶大尺度电影| 9久re热视频在线精品| 欧美日韩激情小视频| 99精品热视频| 欧美日韩国产一区二区| av成人免费在线| 欧美日韩在线综合| 亚洲图中文字幕| 国产精品久久久久一区| 亚洲在线观看视频网站| 国产精品成人在线| 亚洲欧美日韩国产综合| 国产精品午夜电影| 欧美一区二区在线免费观看| 国产视频在线观看一区二区| 久久成人综合网| 精品福利免费观看| 欧美+亚洲+精品+三区| 亚洲黄色一区二区三区| 欧美精品一区三区| 一区二区三区黄色| 国产精品色网| 久久精品水蜜桃av综合天堂| 在线观看亚洲精品| 欧美激情一区| 好看的av在线不卡观看| 久久精品理论片| 亚洲福利视频一区| 欧美精品一卡二卡| 一区二区91| 国产精品一区视频| 久久久久久久综合日本| 亚洲黄色影院| 国产精品二区二区三区| 欧美一级片久久久久久久| 黄色av成人| 欧美激情成人在线视频| 国产欧美精品在线播放| 久久精品在线播放| 在线日韩精品视频| 欧美日韩国产91| 亚洲欧美日韩在线观看a三区| 国产亚洲一区二区三区在线播放| 美国成人直播| 一二三区精品福利视频| 国产免费亚洲高清| 久久手机精品视频| 日韩一区二区精品| 国产美女诱惑一区二区| 开心色5月久久精品| 一区二区91| 国产一区二区三区的电影 | 夜色激情一区二区| 国产亚洲一区在线播放| 欧美高清免费| 午夜精品福利在线观看| 亚洲国产日韩一区| 国产精品欧美久久| 久久影视精品| 亚洲欧美日本另类| 亚洲国产天堂久久综合| 国产精品一区二区三区成人| 蜜月aⅴ免费一区二区三区| 亚洲视频一区在线观看| 在线观看一区二区精品视频| 欧美午夜精品久久久久久浪潮| 久久精品系列| 在线视频你懂得一区二区三区| 韩国在线一区| 国产精品高精视频免费| 鲁大师成人一区二区三区| 亚洲午夜久久久久久尤物| 在线免费精品视频| 国产精品伊人日日| 欧美精品在线观看播放| 久久国产精品第一页| 99re热精品| 在线播放一区| 国产午夜亚洲精品不卡| 欧美色123| 欧美xart系列高清| 性做久久久久久久久| 一区二区三区高清视频在线观看 | 一区二区三区免费网站| 亚洲第一精品电影| 国产欧美高清| 欧美日精品一区视频| 免费不卡欧美自拍视频| 久久国产日韩| 亚洲制服少妇| 一区二区三区高清在线| 最新国产拍偷乱拍精品| 国内精品久久久久久久97牛牛| 国产精品久久久| 欧美日韩成人在线观看| 美女在线一区二区| 久久aⅴ国产欧美74aaa| 亚洲欧美国产毛片在线| 99精品视频免费全部在线| 亚洲缚视频在线观看| 国产在线不卡| 国产欧美午夜| 国产精品呻吟| 国产精品成人久久久久| 欧美日韩国产综合网 | 18成人免费观看视频| 国产亚洲欧洲一区高清在线观看| 欧美日韩专区| 欧美日韩国产成人在线观看| 欧美国产成人精品| 美国成人直播| 理论片一区二区在线| 久久xxxx精品视频| 欧美一区中文字幕| 午夜精品成人在线视频| 亚洲视频免费在线| 在线一区亚洲| 亚洲婷婷免费| 亚洲一区国产| 亚洲一区在线播放| 亚洲综合不卡| 亚洲欧美日韩视频一区| 亚洲欧美日韩另类| 亚洲欧美日韩在线不卡| 欧美亚洲一区在线| 欧美中文字幕在线| 久久久91精品国产| 久久久夜夜夜| 免费观看日韩av| 欧美国产精品中文字幕|