提示:学习本篇教程前请先参阅《Kubernetes卷的快照》和《Kubernetes存储类》。
一、卷快照类
Kubernetes 的卷快照类(VolumeSnapshotClass)为管理员提供了一种在配置卷快照时描述存储”类”的方法,就像StorageClass为管理员提供了一种在配置存储卷时描述存储”类”的方法一样。
二、卷快照类资源
每个卷快照类对象都包含driver、deletionPolicy和parameters字段,用于在需要动态配置属于该类的卷快照时使用。
- driver字段指定了用于创建卷快照的存储驱动或存储后端。这允许管理员根据不同的存储提供商或存储系统选择适当的驱动来创建卷快照。
- deletionPolicy字段定义了当删除快照时应采取的策略。例如,可以选择在删除快照时同时删除底层存储中的快照数据,或者保留快照数据以便稍后恢复。
- parameters字段允许管理员传入自定义的参数,以便根据存储后端的要求进行配置。这些参数可以包括存储账户凭证、快照保留时间等。
卷快照类对象的名称对于用户请求特定类非常重要。管理员在首次创建卷快照类对象时设置类的名称和其他参数,一旦创建后就无法更新。
注意:CRD(Custom Resource Definition,自定义资源定义)的安装是Kubernetes发行版的责任。如果某个集群中不存在所需的CRD,则创建卷快照类时将会失败。
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: csi-hostpath-snapclass driver: hostpath.csi.k8s.io deletionPolicy: Delete parameters:
管理员可以为未请求任何特定类绑定的 卷快照s 指定默认的 卷快照类, 方法是设置注解 snapshot.storage.kubernetes.io/is-default-class: “true”:
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: csi-hostpath-snapclass annotations: snapshot.storage.kubernetes.io/is-default-class: "true" driver: hostpath.csi.k8s.io deletionPolicy: Delete parameters:
三、驱动程序
卷快照类中的驱动程序字段用于指定用于创建卷快照的CSI卷插件的配置。这个字段是卷快照类对象的必选项,必须指定一个CSI卷插件。
四、删除策略
卷快照类具有一个名为deletionPolicy的属性,用于指定当绑定的卷快照对象被删除时如何处理VolumeSnapshotContent对象。这个属性是必选项。
deletionPolicy可以设置为Retain或Delete两种策略。如果deletionPolicy设置为Delete,则底层存储快照和VolumeSnapshotContent对象将一起被删除。如果deletionPolicy设置为Retain,则底层存储快照和VolumeSnapshotContent对象都将保留。
五、参数
卷快照类可以具有描述与该卷快照类相关的卷快照参数的字段。这些参数可以根据驱动程序的要求接受不同的值。