示例
更新时间 2025-10-23 18:47:52
最近更新时间: 2025-10-23 18:47:52
本节展示动态创建快照的示例。
应用场景
VolumeSnapshotClass的名称为csi-dynamic-snapclass-block,PVC的名字为csi-pvc-local,在CSI中创建快照csi-dynamic-snapshot-block-1。
操作步骤
创建VolumeSnapshotClass的YAML配置文件csi-dynamic-snapclass-block-snapshotclass1.yaml。
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: csi-dynamic-snapclass-block driver: stor.csi.k8s.io deletionPolicy: Delete创建VolumeSnapshot的YAML配置文件csi-dynamic-snapshot-block-1.yaml。
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: csi-dynamic-snapshot-block-1 namespace: default spec: volumeSnapshotClassName: csi-dynamic-snapclass-block source: persistentVolumeClaimName: csi-pvc-local2应用配置文件VolumeSnapshotClass和VolumeSnapshot的配置文件。
[root@k8s-master stor-examp]# kubectl apply -f csi-dynamic-snapclass-block-snapshotclass1.yaml volumesnapshotclass.snapshot.storage.k8s.io/csi-dynamic-snapclass-block created [root@k8s-master stor-examp]# kubectl apply -f csi-dynamic-snapshot-block-1.yaml volumesnapshot.snapshot.storage.k8s.io/csi-dynamic-snapshot-block-1 created查看快照。
说明
使用查看快照详情的命令查看时,Labels会显示快照的大小(snapshotSize),单位是字节。HBlock卷异常或上游快照删除等因素可能导致快照大小波动。修改配置文件/deploy/csi-snapshot-updater.yaml中的schedule字段,即可调整CSI同步HBlock快照的时间间隔,详见概述。
[root@k8s-master stor-examp]# kubectl describe volumesnapshot csi-dynamic-snapshot-block-1 Name: csi-dynamic-snapshot-block-1 Namespace: default Labels: snapshotSize=0 Annotations: <none> API Version: snapshot.storage.k8s.io/v1 Kind: VolumeSnapshot Metadata: Creation Timestamp: 2025-08-26T06:02:27Z Finalizers: snapshot.storage.kubernetes.io/volumesnapshot-as-source-protection snapshot.storage.kubernetes.io/volumesnapshot-bound-protection snapshot.storage.kubernetes.io/volumesnapshot-bound-protection Generation: 1 Managed Fields: API Version: snapshot.storage.k8s.io/v1 Fields Type: FieldsV1 fieldsV1: f:metadata: f:annotations: .: f:kubectl.kubernetes.io/last-applied-configuration: f:spec: .: f:source: .: f:persistentVolumeClaimName: f:volumeSnapshotClassName: Manager: kubectl-client-side-apply Operation: Update Time: 2025-08-26T06:02:27Z API Version: snapshot.storage.k8s.io/v1 Fields Type: FieldsV1 fieldsV1: f:metadata: f:finalizers: f:status: .: f:boundVolumeSnapshotContentName: f:creationTime: f:readyToUse: f:restoreSize: Manager: snapshot-controller Operation: Update Time: 2025-08-26T06:02:29Z API Version: snapshot.storage.k8s.io/v1 Fields Type: FieldsV1 fieldsV1: f:metadata: f:labels: .: f:snapshotSize: Manager: Go-http-client Operation: Update Time: 2025-08-26T06:15:09Z Resource Version: 14510083 UID: 148cbe18-108a-47ae-8ef1-4d3e2dec5d87 Spec: Source: Persistent Volume Claim Name: csi-pvc-local2 Volume Snapshot Class Name: csi-dynamic-snapclass-block Status: Bound Volume Snapshot Content Name: snapcontent-148cbe18-108a-47ae-8ef1-4d3e2dec5d87 Creation Time: 2025-08-26T06:02:29Z Ready To Use: true Restore Size: 22Gi Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning SnapshotFinalizerError 43m snapshot-controller Failed to check and update snapshot: snapshot controller failed to update default/csi-dynamic-snapshot-block-1 on API server: Operation cannot be fulfilled on volumesnapshots.snapshot.storage.k8s.io "csi-dynamic-snapshot-block-1": the object has been modified; please apply your changes to the latest version and try again Normal CreatingSnapshot 43m snapshot-controller Waiting for a snapshot default/csi-dynamic-snapshot-block-1 to be created by the CSI driver. Normal SnapshotCreated 43m snapshot-controller Snapshot default/csi-dynamic-snapshot-block-1 was successfully created by the CSI driver. Normal SnapshotReady 43m snapshot-controller Snapshot default/csi-dynamic-snapshot-block-1 is ready to use. Normal SnapshotCreated 43m snapshot-controller Snapshot default/csi-dynamic-snapshot-block-1 was successfully created by the CSI driver. Normal SnapshotReady 43m snapshot-controller Snapshot default/csi-dynamic-snapshot-block-1 is ready to use.