国产欧美日韩三区_偷窥自拍亚洲色图精选_久久大片网站_成人在线黄色_成人亚洲免费视频_99久久久精品_国产美女自拍_韩国19禁主播vip福利视频_色综合视频一区二区三区日韩_日本在线观看一区二区

當前位置:首頁 > 科技  > 知識百科

通過 Kubernetes CSI 實現 Longhorn 卷快照備份、恢復、克隆與擴容功能

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

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

jOl28資訊網——每日最新資訊28at.com

CSI 卷快照jOl28資訊網——每日最新資訊28at.com

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

jOl28資訊網——每日最新資訊28at.com

概念jOl28資訊網——每日最新資訊28at.com

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

卷快照能力為 Kubernetes 用戶提供了一種標準的方式來在指定時間點復制卷的內容,并且不需要創建全新的卷,比如數據庫管理員可以在執行編輯或刪除之類的修改之前對數據庫執行備份。jOl28資訊網——每日最新資訊28at.com

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

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

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

資源供應:與 PV 的資源供應類似,VolumeSnapshotContent 也可以以靜態或動態兩種方式供應資源。jOl28資訊網——每日最新資訊28at.com

靜態供應:集群管理員會預先創建好一組 VolumeSnapshotContent 資源,類似于手動創建 PV動態供應:基于 VolumeSnapshotClass 資源,當用戶創建 VolumeSnapshot 申請時自動創建 VolumeSnapshotContent,類似于 StorageClass 動態創建 PVjOl28資訊網——每日最新資訊28at.com

資源綁定:快照控制器負責將 VolumeSnapshot 與一個合適的 VolumeSnapshotContent 進行綁定,包括靜態和動態供應兩種情況,VolumeSnapshot 和 VolumeSnapshotContent 之間也是一對一進行綁定的,不會存在一對多的情況。jOl28資訊網——每日最新資訊28at.com

對使用中的PVC的保護機制:當存儲快照 VolumeSnapshot 正在被創建且還未完成時,相關的 PVC 將會被標記為正被使用中,如果用戶對 PVC 進行刪除操作,系統不會立即刪除 PVC,以避免快照還未做完造成數據丟失,刪除操作會延遲到 VolumeSnapshot 創建完成(readyToUse 狀態)或被終止(aborted 狀態)的情況下完成。jOl28資訊網——每日最新資訊28at.com

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

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

我們這里的 Longhorn 系統在部署完成后創建了3個 csi-snapshotter 的 Pod:jOl28資訊網——每日最新資訊28at.com

? kubectl get pods -n longhorn-systemjOl28資訊網——每日最新資訊28at.com
NAME READY STATUS RESTARTS AGEjOl28資訊網——每日最新資訊28at.com
csi-snapshotter-86f65d8bc-9t7dd 1/1 Running 5 (126m ago) 2d17hjOl28資訊網——每日最新資訊28at.com
csi-snapshotter-86f65d8bc-d6xbj 1/1 Running 5 (126m ago) 2d17hjOl28資訊網——每日最新資訊28at.com
csi-snapshotter-86f65d8bc-dncwv 1/1 Running 5 (126m ago) 2d17hjOl28資訊網——每日最新資訊28at.com
......jOl28資訊網——每日最新資訊28at.com

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

? kubectl logs -f csi-snapshotter-86f65d8bc-dncwv -n longhorn-systemjOl28資訊網——每日最新資訊28at.com
......jOl28資訊網——每日最新資訊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)jOl28資訊網——每日最新資訊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)jOl28資訊網——每日最新資訊28at.com

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

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

上面的命令會安裝上面提到的3個 Snapshot CRDs:jOl28資訊網——每日最新資訊28at.com

? kubectl get crd |grep snapshotjOl28資訊網——每日最新資訊28at.com
volumesnapshotclasses.snapshot.storage.k8s.io 2022-02-23T05:31:34ZjOl28資訊網——每日最新資訊28at.com
volumesnapshotcontents.snapshot.storage.k8s.io 2022-02-23T05:31:34ZjOl28資訊網——每日最新資訊28at.com
volumesnapshots.snapshot.storage.k8s.io 2022-02-23T05:31:34ZjOl28資訊網——每日最新資訊28at.com

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

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

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

? kubectl get pods -n kube-system -l app=snapshot-controllerjOl28資訊網——每日最新資訊28at.com
NAME READY STATUS RESTARTS AGEjOl28資訊網——每日最新資訊28at.com
snapshot-controller-677b65dc6c-288w9 1/1 Running 0 3m22sjOl28資訊網——每日最新資訊28at.com
snapshot-controller-677b65dc6c-zgdcm 1/1 Running 0 39sjOl28資訊網——每日最新資訊28at.com

到這里就將使用 CSI 來配置快照的環境準備好了。jOl28資訊網——每日最新資訊28at.com

測試jOl28資訊網——每日最新資訊28at.com

下面我們仍然以前面的 mysql-pvc 這個卷為例來說明下如何使用卷快照功能:jOl28資訊網——每日最新資訊28at.com

? kubectl get pvc mysql-pvcjOl28資訊網——每日最新資訊28at.com
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEjOl28資訊網——每日最新資訊28at.com
mysql-pvc Bound pvc-ec17a7e4-7bb4-4456-9380-353db3ed4307 1Gi RWO longhorn 2d18hjOl28資訊網——每日最新資訊28at.com

要創建 mysql-pvc 的快照申請,首先需要創建一個 VolumeSnapshot 對象:jOl28資訊網——每日最新資訊28at.com

# snapshot-mysql.yamljOl28資訊網——每日最新資訊28at.com
apiVersion: snapshot.storage.k8s.io/v1jOl28資訊網——每日最新資訊28at.com
kind: VolumeSnapshotjOl28資訊網——每日最新資訊28at.com
metadata:jOl28資訊網——每日最新資訊28at.com
name: mysql-snapshot-demojOl28資訊網——每日最新資訊28at.com
spec:jOl28資訊網——每日最新資訊28at.com
volumeSnapshotClassName: longhornjOl28資訊網——每日最新資訊28at.com
source:jOl28資訊網——每日最新資訊28at.com
persistentVolumeClaimName: mysql-pvcjOl28資訊網——每日最新資訊28at.com
# volumeSnapshotContentName: test-contentjOl28資訊網——每日最新資訊28at.com

其中就兩個主要配置參數:jOl28資訊網——每日最新資訊28at.com

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

上面我們指定了一個存儲快照類 longhorn,當然需要創建這個對象:jOl28資訊網——每日最新資訊28at.com

# snapshotclass.yamljOl28資訊網——每日最新資訊28at.com
apiVersion: snapshot.storage.k8s.io/v1jOl28資訊網——每日最新資訊28at.com
kind: VolumeSnapshotClassjOl28資訊網——每日最新資訊28at.com
metadata:jOl28資訊網——每日最新資訊28at.com
name: longhornjOl28資訊網——每日最新資訊28at.com
# annotations: # 如果要指定成默認的快照類jOl28資訊網——每日最新資訊28at.com
# snapshot.storage.kubernetes.io/is-default-class: "true"jOl28資訊網——每日最新資訊28at.com
driver: driver.longhorn.iojOl28資訊網——每日最新資訊28at.com
deletionPolicy: DeletejOl28資訊網——每日最新資訊28at.com

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

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

如果想將當前快照類設置成默認的則需要添加 snapshot.storage.kubernetes.io/is-default-class: "true" 這樣的 annotations。jOl28資訊網——每日最新資訊28at.com

現在我們直接創建上面的兩個資源對象:jOl28資訊網——每日最新資訊28at.com

? kubectl apply -f snapshotclass.yamljOl28資訊網——每日最新資訊28at.com
volumesnapshotclass.snapshot.storage.k8s.io/longhorn createdjOl28資訊網——每日最新資訊28at.com
? kubectl apply -f snapshot-mysql.yamljOl28資訊網——每日最新資訊28at.com
volumesnapshot.snapshot.storage.k8s.io/mysql-snapshot-demo createdjOl28資訊網——每日最新資訊28at.com
? kubectl get volumesnapshotclassjOl28資訊網——每日最新資訊28at.com
NAME DRIVER DELETIONPOLICY AGEjOl28資訊網——每日最新資訊28at.com
longhorn driver.longhorn.io Delete 43sjOl28資訊網——每日最新資訊28at.com
? kubectl get volumesnapshotjOl28資訊網——每日最新資訊28at.com
NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGEjOl28資訊網——每日最新資訊28at.com
mysql-snapshot-demo true mysql-pvc 1Gi longhorn snapcontent-1119649a-d4f2-447f-a21a-e527f202e43e 43s 43sjOl28資訊網——每日最新資訊28at.com

這個時候會動態為我們創建一個 VolumeSnapshotContent 對象:jOl28資訊網——每日最新資訊28at.com

? kubectl get volumesnapshotcontentjOl28資訊網——每日最新資訊28at.com
NAME READYTOUSE RESTORESIZE DELETIONPOLICY DRIVER VOLUMESNAPSHOTCLASS VOLUMESNAPSHOT VOLUMESNAPSHOTNAMESPACE AGEjOl28資訊網——每日最新資訊28at.com
snapcontent-1119649a-d4f2-447f-a21a-e527f202e43e true 1073741824 Delete driver.longhorn.io longhorn mysql-snapshot-demo default 97sjOl28資訊網——每日最新資訊28at.com

自動創建的 VolumeSnapshotContent 對象內容如下所示:jOl28資訊網——每日最新資訊28at.com

apiVersion: snapshot.storage.k8s.io/v1jOl28資訊網——每日最新資訊28at.com
kind: VolumeSnapshotContentjOl28資訊網——每日最新資訊28at.com
metadata:jOl28資訊網——每日最新資訊28at.com
name: snapcontent-1119649a-d4f2-447f-a21a-e527f202e43ejOl28資訊網——每日最新資訊28at.com
spec:jOl28資訊網——每日最新資訊28at.com
deletionPolicy: DeletejOl28資訊網——每日最新資訊28at.com
driver: driver.longhorn.iojOl28資訊網——每日最新資訊28at.com
source:jOl28資訊網——每日最新資訊28at.com
volumeHandle: pvc-ec17a7e4-7bb4-4456-9380-353db3ed4307jOl28資訊網——每日最新資訊28at.com
volumeSnapshotClassName: longhornjOl28資訊網——每日最新資訊28at.com
volumeSnapshotRef:jOl28資訊網——每日最新資訊28at.com
apiVersion: snapshot.storage.k8s.io/v1jOl28資訊網——每日最新資訊28at.com
kind: VolumeSnapshotjOl28資訊網——每日最新資訊28at.com
name: mysql-snapshot-demojOl28資訊網——每日最新資訊28at.com
namespace: defaultjOl28資訊網——每日最新資訊28at.com
resourceVersion: "4967456"jOl28資訊網——每日最新資訊28at.com
uid: 1119649a-d4f2-447f-a21a-e527f202e43ejOl28資訊網——每日最新資訊28at.com
status:jOl28資訊網——每日最新資訊28at.com
creationTime: 1645597546000000000jOl28資訊網——每日最新資訊28at.com
readyToUse: truejOl28資訊網——每日最新資訊28at.com
restoreSize: 1073741824jOl28資訊網——每日最新資訊28at.com
snapshotHandle: bs://pvc-ec17a7e4-7bb4-4456-9380-353db3ed4307/backup-f5f28fd624a148edjOl28資訊網——每日最新資訊28at.com

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

jOl28資訊網——每日最新資訊28at.com

并且也會進行一次對應的 Backup 操作,備份的信息通過 snapshotHandle 進行指定的,格式為 bs://backup-/backup-:jOl28資訊網——每日最新資訊28at.com

jOl28資訊網——每日最新資訊28at.com

這樣我們就完成了通過 CSI 實現卷的快照管理功能。jOl28資訊網——每日最新資訊28at.com

CSI 卷恢復jOl28資訊網——每日最新資訊28at.com

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

# restore-mysql.yamljOl28資訊網——每日最新資訊28at.com
apiVersion: v1jOl28資訊網——每日最新資訊28at.com
kind: PersistentVolumeClaimjOl28資訊網——每日最新資訊28at.com
metadata:jOl28資訊網——每日最新資訊28at.com
name: mysql-restore-pvcjOl28資訊網——每日最新資訊28at.com
spec:jOl28資訊網——每日最新資訊28at.com
storageClassName: longhornjOl28資訊網——每日最新資訊28at.com
accessModes:jOl28資訊網——每日最新資訊28at.com
- ReadWriteOncejOl28資訊網——每日最新資訊28at.com
resources:jOl28資訊網——每日最新資訊28at.com
requests:jOl28資訊網——每日最新資訊28at.com
storage: 1GijOl28資訊網——每日最新資訊28at.com
dataSource:jOl28資訊網——每日最新資訊28at.com
apiGroup: snapshot.storage.k8s.iojOl28資訊網——每日最新資訊28at.com
kind: VolumeSnapshotjOl28資訊網——每日最新資訊28at.com
name: mysql-snapshot-demojOl28資訊網——每日最新資訊28at.com

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

? kubectl get pvc mysql-restore-pvcjOl28資訊網——每日最新資訊28at.com
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEjOl28資訊網——每日最新資訊28at.com
mysql-restore-pvc Bound pvc-e4ddd985-31a8-4570-b393-dcedec3b0d95 1Gi RWO longhorn 17sjOl28資訊網——每日最新資訊28at.com

在 Longhorn UI 中去查看該卷,可以看到該卷的實際大小并不為0,這是因為我們是從快照中創建過來的,相當于從上面的快照中恢復的數據:jOl28資訊網——每日最新資訊28at.com

jOl28資訊網——每日最新資訊28at.com

卷克隆jOl28資訊網——每日最新資訊28at.com

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

jOl28資訊網——每日最新資訊28at.com

克隆一個 PVC 其實就是對已存在的存儲卷創建一個副本,唯一的區別是,系統在為克隆 PVC 提供后端存儲資源時,不是新建一個空的 PV,而是復制一個與原 PVC 綁定 PV 完全一樣的 PV。jOl28資訊網——每日最新資訊28at.com

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

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

克隆僅適用于 CSI 驅動克隆僅適用于動態供應克隆功能取決于具體的 CSI 驅動是否實現該功能要求目標 PVC 和源 PVC 必須處于同一個命名空間只支持在相同的 StorageClass 中(可以使用默認的)兩個存儲卷的存儲模式(VolumeMode)要一致jOl28資訊網——每日最新資訊28at.com

同樣我們來對前面的 mysql-pvc 這個存儲卷進行克隆操作,對應的 PVC 聲明如下所示:jOl28資訊網——每日最新資訊28at.com

apiVersion: v1jOl28資訊網——每日最新資訊28at.com
kind: PersistentVolumeClaimjOl28資訊網——每日最新資訊28at.com
metadata:jOl28資訊網——每日最新資訊28at.com
name: mysql-clone-pvcjOl28資訊網——每日最新資訊28at.com
spec:jOl28資訊網——每日最新資訊28at.com
accessModes:jOl28資訊網——每日最新資訊28at.com
- ReadWriteOncejOl28資訊網——每日最新資訊28at.com
storageClassName: longhornjOl28資訊網——每日最新資訊28at.com
resources:jOl28資訊網——每日最新資訊28at.com
requests:jOl28資訊網——每日最新資訊28at.com
storage: 1Gi # 必須大于或等于源的值jOl28資訊網——每日最新資訊28at.com
dataSource:jOl28資訊網——每日最新資訊28at.com
kind: PersistentVolumeClaimjOl28資訊網——每日最新資訊28at.com
name: mysql-pvcjOl28資訊網——每日最新資訊28at.com

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

? kubectl get pvc mysql-clone-pvcjOl28資訊網——每日最新資訊28at.com
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEjOl28資訊網——每日最新資訊28at.com
mysql-clone-pvc Bound pvc-58eab5f0-a386-435c-91f4-0c26f7935695 1Gi RWO longhorn 31sjOl28資訊網——每日最新資訊28at.com

在 Longhorn UI 頁面中也可以看到對應的卷:jOl28資訊網——每日最新資訊28at.com

jOl28資訊網——每日最新資訊28at.com

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

卷動態擴容jOl28資訊網——每日最新資訊28at.com

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

通過 Longhorn UI 操作比較簡單,直接在頁面中選擇要擴容的卷,在操作中選擇 Expand Volume 進行操作即可:jOl28資訊網——每日最新資訊28at.com

jOl28資訊網——每日最新資訊28at.com

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

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

修改后可以查看該 PVC 的 events 信息:jOl28資訊網——每日最新資訊28at.com

? kubectl describe pvc mysql-clone-pvcjOl28資訊網——每日最新資訊28at.com
......jOl28資訊網——每日最新資訊28at.com
Events:jOl28資訊網——每日最新資訊28at.com
Type Reason Age From MessagejOl28資訊網——每日最新資訊28at.com
---- ------ ---- ---- -------jOl28資訊網——每日最新資訊28at.com
......jOl28資訊網——每日最新資訊28at.com
Normal Resizing 14s external-resizer driver.longhorn.io External resizer is resizing volume pvc-58eab5f0-a386-435c-91f4-0c26f7935695jOl28資訊網——每日最新資訊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.jOl28資訊網——每日最新資訊28at.com
Normal VolumeResizeSuccessful 2s external-resizer driver.longhorn.io Resize volume succeededjOl28資訊網——每日最新資訊28at.com

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

? kubectl get pvc mysql-clone-pvcjOl28資訊網——每日最新資訊28at.com
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEjOl28資訊網——每日最新資訊28at.com
mysql-clone-pvc Bound pvc-58eab5f0-a386-435c-91f4-0c26f7935695 2Gi RWO longhorn 43mjOl28資訊網——每日最新資訊28at.com
? kubectl get pv pvc-58eab5f0-a386-435c-91f4-0c26f7935695jOl28資訊網——每日最新資訊28at.com
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGEjOl28資訊網——每日最新資訊28at.com
pvc-58eab5f0-a386-435c-91f4-0c26f7935695 2Gi RWO Delete Bound default/mysql-clone-pvc longhorn 43mjOl28資訊網——每日最新資訊28at.com

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

jOl28資訊網——每日最新資訊28at.com

本文鏈接:http://www.yifxia.cn/showinfo-119-2181-0.html通過 Kubernetes CSI 實現 Longhorn 卷快照備份、恢復、克隆與擴容功能

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

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

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

標簽:
  • 熱門焦點
Top 国产伦久视频免费观看视频| 成人av在线播放| 成人免费观看男女羞羞视频| 亚洲 国产精品 日韩| 精品国产三级a∨在线观看| 欧美日本免费| 精品久久久久久中文字幕一区| 国产精品123| 免费国产在线观看不卡| 一级毛片看真人在线视频| 亚洲女人国产香蕉久久精品| 日韩女人做爰大片| 一级毛片视频免费| 九九久久国产精品大片| 欧美一级视频高清片| 免费毛片播放| 亚洲 男人 天堂| 999精品影视在线观看| 国产精品1024永久免费视频| 国产麻豆精品免费视频| 午夜激情视频在线播放| 国产成人啪精品| 亚洲wwwwww| 精品视频在线观看一区二区| 高清一级淫片a级中文字幕| 久久国产影院| 99热精品在线| 欧美另类videosbestsex久久| 亚欧成人乱码一区二区| 四虎影视久久久| 麻豆午夜视频| 九九干| 久久99这里只有精品国产| 国产伦精品一区三区视频| 精品国产一区二区三区免费 | 亚洲www美色| 欧美一区二区三区在线观看| 国产成人精品综合在线| 青青青草影院| 精品久久久久久中文字幕2017| 午夜在线亚洲| 天天做日日爱夜夜爽| 国产视频久久久| 国产国产人免费视频成69堂| 色综合久久天天综合观看| 日本特黄特黄aaaaa大片 | 久久99爰这里有精品国产| 欧美激情一区二区三区在线| 日韩中文字幕在线播放| 中文字幕97| 91麻豆tv| 香蕉视频一级| 国产不卡精品一区二区三区| 久草免费资源| 精品久久久久久影院免费| 99久久精品国产免费| 999久久狠狠免费精品| 韩国毛片| 国产极品白嫩美女在线观看看| 日日夜夜婷婷| 亚洲第一页色| 欧美日本免费| 一级女人毛片人一女人| 美女免费精品高清毛片在线视| 在线观看成人网| 欧美激情一区二区三区在线播放 | 日本免费看视频| 日韩在线观看视频网站| 美女免费精品高清毛片在线视| 青青久久网| 成人免费观看男女羞羞视频| 国产麻豆精品| 91麻豆精品国产高清在线| 日本免费区| 成人免费高清视频| 亚洲精品影院| 国产精品123| 国产国产人免费视频成69堂| 成人高清免费| 欧美a免费| 成人免费观看视频| 天堂网中文在线| 欧美另类videosbestsex视频| 日本在线不卡视频| 日韩免费在线视频| 日韩一级黄色大片| 精品久久久久久中文字幕2017| 国产美女在线一区二区三区| 精品在线免费播放| 色综合久久天天综合绕观看| 精品久久久久久免费影院| 999精品影视在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产91丝袜在线播放0| 国产欧美精品午夜在线播放| 久久久久久久久综合影视网| 精品视频在线观看视频免费视频| 欧美激情一区二区三区视频| 麻豆污视频| 国产伦精品一区二区三区无广告| 国产a毛片| 日韩专区一区| 国产a视频| 日本伦理黄色大片在线观看网站| 成人免费高清视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产成人啪精品视频免费软件| 国产一区二区精品在线观看| 精品国产一区二区三区国产馆| 免费一级片在线观看| 中文字幕97| 精品视频免费看| 欧美激情一区二区三区视频 | 国产视频在线免费观看| 91麻豆精品国产自产在线| 久久国产影院| 亚洲精品中文一区不卡| 欧美爱爱网| 久久精品人人做人人爽97| 成人免费观看男女羞羞视频| 午夜精品国产自在现线拍| 国产精品免费久久| 欧美爱爱网| 日韩专区一区| 国产91精品系列在线观看| 亚洲不卡一区二区三区在线| 午夜在线亚洲| 久久国产影视免费精品| 精品久久久久久中文| 国产伦精品一区二区三区无广告 | 久久国产影视免费精品| 可以免费在线看黄的网站| 久草免费在线色站| 99久久精品国产高清一区二区| 你懂的国产精品| 国产不卡在线看| 国产伦精品一区二区三区无广告| 久久久成人影院| 99色播| 欧美国产日韩精品| 国产成人啪精品视频免费软件| 久草免费在线观看| 在线观看成人网| 日本特黄特黄aaaaa大片| 午夜欧美成人久久久久久| 欧美一级视频免费| 精品视频在线看 | 免费国产在线视频| 欧美国产日韩久久久| 黄视频网站免费看| 亚洲第一页色| 91麻豆精品国产自产在线| 日韩中文字幕在线播放| 四虎久久影院| 国产91精品系列在线观看| 一级女人毛片人一女人| 国产一区二区精品久久91| 一级片片| 日韩男人天堂| 精品视频一区二区| 免费毛片播放| 亚洲精品久久久中文字| 四虎影视久久久| 久久国产影院| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 午夜在线亚洲| 国产成人欧美一区二区三区的| 国产伦理精品| 日韩专区亚洲综合久久| 欧美日本二区| 欧美一区二区三区性| 欧美日本免费| 日韩专区第一页| 天天做日日爱| 国产精品免费久久| 精品久久久久久中文字幕一区| 麻豆污视频| 欧美a级片视频| 精品国产亚一区二区三区| 99色视频| 高清一级淫片a级中文字幕| 毛片的网站| 国产一区二区精品| 亚洲精品影院| 欧美另类videosbestsex久久| 欧美另类videosbestsex久久 | 欧美α片无限看在线观看免费| 成人免费福利片在线观看| 91麻豆国产| 999久久狠狠免费精品| 欧美国产日韩精品| 国产网站免费观看| 国产美女在线观看| 午夜精品国产自在现线拍| 99久久精品国产麻豆| 成人在免费观看视频国产| 麻豆午夜视频| 亚洲wwwwww| 精品视频在线观看一区二区| 精品久久久久久中文字幕2017|