在 Red Hat OpenShift 集群上安装 Trident 并创建存储对象
使用 Red Hat Certified Trident Operator 安装 Trident 并为 ONTAP 和 Amazon FSx for NetApp ONTAP 创建存储对象,以启用容器和虚拟机的动态卷配置。在需要时为块访问准备工作节点。
-
在安装 OpenShift Virtualization 之前,请完成此页面上的步骤。OpenShift Virtualization 需要默认的 Trident 支持的 StorageClass 和 VolumeSnapshotClass 来为 VM 模板创建黄金映像。
-
如果您在配置 Trident 之前已经安装了 OpenShift Virtualization,请删除使用不同存储类创建的所有黄金映像。将 Trident 设置为默认值后,OpenShift Virtualization 会使用 Trident 存储重新创建黄金映像。
oc delete dv,VolumeSnapshot -n openshift-virtualization-os-images --selector=cdi.kubevirt.io/dataImportCron
步骤 1:安装 Trident
红帽认证 Trident Operator 由 NetApp 支持,适用于本地、公共云和 ROSA 等托管服务中的 OpenShift。从 Trident 25.02 开始,当您使用 Amazon FSx for NetApp ONTAP 并计划运行 OpenShift Virtualization VM 工作负载时,操作员还可以为 iSCSI 准备工作节点。
有关其他安装选项,请参见 "Trident 文档"。
-
在 OperatorHub 中,选择 Certified NetApp Trident。
显示示例

-
在 Install 页面上,保留最新版本并选择 Install。
显示示例

-
操作员安装后,选择 查看操作员 并创建 Trident Orchestrator 的实例。
如果要为 iSCSI 准备工作节点,请切换到 YAML 视图并添加
iscsi`到 `nodePrep。显示示例

-
确认所有 Trident Pod 都在集群中运行。
显示示例

-
如果已启用 iSCSI 节点准备,请登录到工作节点并验证 `iscsid`和 `multipathd`是否处于活动状态,以及 `multipath.conf`是否包含条目。
显示示例

显示示例

显示示例

以下视频展示了使用红帽认证 Trident Operator 安装 Trident 的演示。
步骤 2:为您的环境准备存储后端和 StorageClass 配置文件
为您的环境创建 TridentBackendConfig 和 StorageClass 定义。您可以在环境中配置多个存储协议。为要使用的每个协议创建 YAML 文件,并将占位符值替换为特定的配置详细信息。
|
|
根据您的环境完成下面的本地或 ROSA 部分,然后继续执行步骤 3。 |
本地 OpenShift 集群
为要配置的每个协议创建 YAML 文件。您可以配置以下一个或多个协议:NAS 用于基于 NFS 的文件存储、iSCSI 用于 iSCSI 块存储、NVMe/TCP 用于高性能 NVMe over TCP 块存储,或 FC 用于光纤通道块存储。
为每个协议创建 TridentBackendConfig 和 StorageClass。后端配置包括存储在 Kubernetes Secret 中的凭据。
后端配置基本选项的基本准则
-
后端配置文件引用您的 ONTAP SVM 和 管理 LIF。+
-
您可以使用用户名和密码向 ONTAP 进行身份验证。可以是集群管理员或 vserver 管理员的用户名和密码。+
-
您还可以使用客户端证书对 ONTAP 进行身份验证。有关如何生成客户端证书、私钥和 CA 证书的详细信息,请参阅 "Trident 文档"。
NAS 经济驱动程序后端配置选项的基本准则
对于 NAS economy driver 配置,可以包括以下参数:
-
qtreesPerFlexvol 该值必须在50-300的范围内,默认值为200。+
-
limitVolumePoolSize 该值是在 ontap-nas-economy 后端使用 qtree 时请求的最大 FlexVol 大小。未设置默认值,默认情况下不强制执行此参数。如果设置此参数,当当前 FlexVol 达到指定大小时,Trident 操作员将创建一个新的 FlexVol。此参数可通过限制用于配置 PV 的 FlexVols 大小来帮助您控制集群中的容量利用率。+
-
denyNewVolumePools 此参数限制 ontap-nas-economy 后端创建新 FlexVol 卷以包含其 qtree。仅使用预先存在的 FlexVol 来配置新的 PV。
SAN 驱动程序后端配置选项的基本准则
以下参数可包含在 SAN driver 配置中:
-
limitVolumeSize 该值是您在使用 SAN 后端时请求的最大卷大小。未设置默认值,默认情况下不强制执行此参数。如果设置此参数,则当请求的卷大小超过此值时,Trident 操作员将无法进行配置。您可以使用此参数来限制其为 LUN 管理的卷的最大大小。+
-
lunsPerFlexvol 每个 FlexVol 的最大 LUN 数,必须在 [50, 200] 范围内,默认值为 100。如果设置此参数,当当前 FlexVol 达到指定数量的 LUN 时,Trident 操作员会创建一个新的 FlexVol。此参数可通过限制每个用于调配 PV 的 FlexVol 的 LUN 数量,帮助您控制集群中的容量利用率。
SAN economy 驱动程序后端配置选项的基本准则
以下参数可包含在 SAN economy driver 配置中:
-
limitVolumePoolSize 该值是您在使用 SAN 经济后端时请求的最大 FlexVol 大小。未设置默认值,默认情况下不强制执行此参数。如果设置此参数,Trident 运算符将限制可以为在 flexvol 中创建 LUN 而创建的最大 flexvol 大小。此参数可以通过限制用于配置 PV 的 FlexVols 大小来帮助您控制集群中的容量利用率。+
-
denyNewVolumePools 此参数限制 SAN economy 后端创建新 FlexVol 卷以包含其 LUN。仅使用预先存在的 FlexVol 来配置新的 PV。
配置卷的后端配置选项的基本准则
|
|
在为每个协议提供的示例 yaml 文件中,如果未提供 storagePrefix,则使用默认前缀"trident"。当使用 ontap-nas-economy 且 storagePrefix 为 24 个或更多字符时,qtree 将不会嵌入存储前缀,但它将包含在卷名称中。 |
当您直接从系统管理器或 CLI 在 ONTAP 中创建卷时,如果未为所有可选参数提供值,则在卷配置期间会自动设置一些默认值,如下所示。


以下是使用 Trident 后端配置创建的卷示例。除名称模板外,它没有在默认值部分中显式设置任何选项。
oc describe tbc -n trident tbc-nas
### output truncated for brevity
Spec:
Backend Name: tbc-nas
Credentials:
Name: tbc-nas-secret
Defaults: # There are no defaults set except for the volume name template.
Name Template: {{ .config.StoragePrefix }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}
Management LIF: 10.192.102.50
Storage Driver Name: ontap-nas
Storage Prefix: testautomation
Svm: oc-test-automation
使用此后端配置创建卷时,未在后端配置文件中设置的选项将设置为默认值,如下所示。

但是,当您在 Trident 后端配置的默认部分中设置值时,您可以创建对这些参数具有特定值的卷。在以下示例中,snapshotPolicy 在后端配置 yaml 的默认部分中设置为默认策略(如果未显式设置任何内容,则为 none),snapshotDir 设置为 true。通过这些设置,您可以看到后端卷获取了这些值。(snapdir-access 为 true,snapshot-policy 为默认值)



对于所有其他附加参数,请查看 Trident 文档:
为 ONTAP NAS 创建 TridentBackendConfig 和 StorageClass,以启用基于 NFS 的持久存储配置。后端配置包括存储在 Kubernetes Secret 中的凭据,并引用您的 ONTAP SVM 和管理 LIF。
使用用户名和密码身份验证(另存为 tbc-nas.yaml)的后端密钥和后端配置文件示例:
# tbc-nas.yaml
apiVersion: v1
kind: Secret
metadata:
name: tbc-nas-secret
type: Opaque
stringData:
username: <cluster admin username>
password: <cluster admin password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-nas
spec:
version: 1
storageDriverName: ontap-nas
managementLIF: <ONTAP management LIF>
backendName: tbc-nas
svm: zoneb #<replace with your SVM name>
storagePrefix: testzoneb #<replace with your prefix>
defaults:
nameTemplate: "{{ .config.StoragePrefix }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
credentials:
name: tbc-nas-secret
使用客户端证书身份验证的后端密钥和后端配置文件示例(另存为 tbc-nas.yaml):
# tbc-nas.yaml
apiVersion: v1
kind: Secret
metadata:
name: ontap-nas-secret
namespace: trident
type: Opaque
stringData:
clientPrivateKey: <client private>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-nas
namespace: trident
spec:
version: 1
storageDriverName: ontap-nas
managementLIF: <ONTAP management LIF>
backendName: tbc-nas
svm: zoneb #<replace with your SVM name>
storagePrefix: testzoneb #<replace with your prefix>
credentials:
name: ontap-nas-secret
clientCertificate: <client certificate>
StorageClass 定义(另存为 sc-nas.yaml):
# sc-nas.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-nas
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas"
media: "ssd"
provisioningType: "thin"
snapshots: "true"
allowVolumeExpansion: true
创建 TridentBackendConfig 和 StorageClass,用于 ONTAP NAS economy 驱动程序,以启用使用 qtree 的基于 NFS 的持久存储配置。后端配置包括存储在 Kubernetes Secret 中的凭据,并引用您的 ONTAP SVM 和管理 LIF。
使用用户名和密码身份验证(另存为 tbc-nas-economy.yaml)的后端密钥和后端配置文件示例:
# tbc-nas-economy.yaml
apiVersion: v1
kind: Secret
metadata:
name: tbc-nas-economy-secret
type: Opaque
stringData:
username: <cluster admin username>
password: <cluster admin password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-nas-economy
spec:
version: 1
storageDriverName: ontap-nas-economy
managementLIF: <ONTAP management LIF>
backendName: tbc-nas-eco
svm: <replace with your SVM name>
storagePrefix: <replace with your prefix>
defaults:
nameTemplate: "{{ .config.StoragePrefix }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
credentials:
name: tbc-nas-economy-secret
StorageClass 定义(另存为 sc-nas-economy.yaml):
# sc-nas-economy.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-nas-economy
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas-economy"
media: "ssd"
provisioningType: "thin"
snapshots: "true"
allowVolumeExpansion: true
|
|
有关可以包含在 ontap-nas-economy 驱动程序后端配置文件中的其他参数的详细信息,请参阅上述 NAS economy 驱动程序后端配置选项的基本指南部分。 |
创建 TridentBackendConfig 和 StorageClass,用于支持 iSCSI 的 ONTAP SAN,以启用基于 iSCSI 的块存储配置。后端配置使用 ontap-san 驱动程序,并包含存储在 Kubernetes Secret 中的凭据。如果省略 sanType 参数,则默认使用 iSCSI 协议。
使用用户名密码身份验证的后端 secret 和后端配置文件(另存为 tbc-iscsi.yaml):
# tbc-iscsi.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-ontap-iscsi-secret
type: Opaque
stringData:
username: <cluster admin username>
password: <cluster admin password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: ontap-iscsi
spec:
version: 1
storageDriverName: ontap-san
managementLIF: <management LIF>
backendName: ontap-iscsi
svm: <SVM name>
credentials:
name: backend-tbc-ontap-iscsi-secret
使用客户端证书身份验证的后端 secret 和后端配置文件(另存为 tbc-iscsi.yaml):
# tbc-iscsi.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-ontap-iscsi-secret
type: Opaque
stringData:
clientPrivateKey: <client private key>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: ontap-iscsi
spec:
version: 1
storageDriverName: ontap-san
managementLIF: <management LIF>
backendName: ontap-iscsi
svm: <SVM name>
credentials:
name: backend-tbc-ontap-iscsi-secret
clientCertificate: <client certificate>
StorageClass 定义(另存为 sc-iscsi.yaml):
# sc-iscsi.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-iscsi
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san"
media: "ssd"
provisioningType: "thin"
fsType: ext4
snapshots: "true"
allowVolumeExpansion: true
为 ONTAP SAN 创建 TridentBackendConfig 和 StorageClass,使用 NVMe over TCP 以实现高性能块存储调配。后端配置使用针对 NVMe/TCP 传输优化的 ontap-san 驱动程序,并包括存储在 Kubernetes Secret 中的凭据。
使用用户名密码身份验证的后端 secret 和后端配置文件(另存为 tbc-nvme.yaml):
# tbc-nvme.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-ontap-nvme-secret
type: Opaque
stringData:
username: <cluster admin username>
password: <cluster admin password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-nvme
spec:
version: 1
storageDriverName: ontap-san
sanType: nvme
managementLIF: <ONTAP management LIF>
backendName: backend-tbc-ontap-nvme
svm: <SVM name>
credentials:
name: backend-tbc-ontap-nvme-secret
使用客户端证书身份验证的后端 secret 和后端配置文件(另存为 tbc-nvme.yaml):
# tbc-nvme.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-ontap-nvme-secret
type: Opaque
stringData:
clientPrivateKey: <client private key>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-nvme
spec:
version: 1
storageDriverName: ontap-san
sanType: nvme
managementLIF: <ONTAP management LIF>
backendName: backend-tbc-ontap-nvme
svm: <SVM name>
credentials:
name: backend-tbc-ontap-nvme-secret
clientCertificate: <client certificate>
StorageClass 定义(另存为 sc-nvme.yaml):
# sc-nvme.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-nvme
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san"
media: "ssd"
provisioningType: "thin"
fsType: ext4
snapshots: "true"
allowVolumeExpansion: true
|
|
如果您计划将 ReadWriteMany(RWX)卷与 NVMe 协议一起使用,则单个 RWX NVMe 卷不能由 Kubernetes 集群中超过 64 个节点挂载。有关此限制的详细信息,以及 Trident 26.02 中引入的超级子系统模型和 Trident 26.02 之前的每卷子系统模型的信息,请参见 Trident 文档: https://docs.netapp.com/us-en/trident/trident-use/ontap-san-prep.html#nvme-tcp-considerations。 |
为具有光纤通道的 ONTAP SAN 创建 TridentBackendConfig 和 StorageClass,以启用基于 FC 的块存储配置。后端配置使用指定了 FCP 协议的 ontap-san 驱动程序,并包括存储在 Kubernetes Secret 中的凭据。
使用用户名/密码身份验证方法或客户端证书身份验证方法通过 ONTAP 进行身份验证。有关如何生成客户端证书、私钥和 CA 证书的详细信息,请查看"Trident 文档"。下面提供了两种方法的示例。
显示示例
使用 ONTAP 用户名和密码身份验证(另存为 tbc-fc.yaml)的后端密钥和后端配置文件:
# tbc-fc.yaml
apiVersion: v1
kind: Secret
metadata:
name: tbc-fc-secret
type: Opaque
stringData:
username: <cluster admin username>
password: <cluster admin password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-fc
spec:
version: 1
storageDriverName: ontap-san
managementLIF: <ONTAP management LIF>
backendName: tbc-fc
svm: openshift-fc #<replace with your SVM name>
sanType: fcp
storagePrefix: demofc #<replace with your prefix>
defaults:
nameTemplate: "{{ .config.StoragePrefix }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
credentials:
name: tbc-fc-secret
使用客户端证书身份验证的后端 secret 和后端配置文件(另存为 tbc-fc.yaml):
# tbc-fc.yaml
apiVersion: v1
kind: Secret
metadata:
name: tbc-fc-secret
type: Opaque
stringData:
clientPrivateKey: <client private key>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-fc
spec:
version: 1
storageDriverName: ontap-san
managementLIF: <ONTAP management LIF>
backendName: tbc-fc
svm: openshift-fc #<replace with your SVM name>
sanType: fcp
storagePrefix: demofc #<replace with your prefix>
defaults:
nameTemplate: "{{ .config.StoragePrefix }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
credentials:
name: tbc-fc-secret
clientCertificate: <client certificate>
# sc-fc.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-fc
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san"
media: "ssd"
provisioningType: "thin"
fsType: ext4
snapshots: "true"
allowVolumeExpansion: true
为使用 iSCSI 的 ONTAP SAN economy 创建 TridentBackendConfig 和 StorageClass,以启用基于 iSCSI 的块存储配置。后端配置使用带有 iSCSI 协议的 ontap-san-economy 驱动程序,并包括存储在 Kubernetes Secret 中的凭据。
使用客户端证书身份验证的后端 secret 和后端配置文件(另存为 tbc-san-eco.yaml):
# tbc-san-eco.yaml
---
apiVersion: v1
kind: Secret
metadata:
name: ontap-san-cert-auth
namespace: trident
type: Opaque
stringData:
clientPrivateKey: <client private key>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-san-eco-cert
namespace: trident
spec:
version: 1
storageDriverName: ontap-san-economy
managementLIF: "<ONTAP management LIF>"
backendName: tbc_san_eco
svm: <replace with your SVM name>
storagePrefix: <replace with your prefix>
credentials:
name: ontap-san-cert-auth
clientCertificate: <client certificate>
# sc-san-eco.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-san-eco
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san-economy"
provisioningType: "thin"
snapshots: "true"
查看 Trident 文档,了解 yaml 文件的其他示例,以及有关 SAN 驱动程序和 NAS 驱动程序支持的访问模式和卷模式的信息。
使用 Amazon FSx for NetApp ONTAP 的 ROSA 集群
为要配置的每个协议创建 YAML 文件。可以配置以下协议之一或两者:用于基于 NFS 的文件存储的 NAS 或用于块存储的 iSCSI。
为 Amazon FSx for NetApp ONTAP 创建 TridentBackendConfig 和 StorageClass,并使用 ONTAP NAS,以便在 ROSA 集群上启用基于 NFS 的持久存储配置。后端配置使用 Amazon FSx for NetApp ONTAP 的 DNS 名称来管理和数据 LIF,并包含存储在 trident 命名空间的 Kubernetes Secret 中的凭据。
后端 secret 和后端配置文件(另存为 tbc-fsx-nas.yaml):
# tbc-fsx-nas.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-fsx-ontap-nas-secret
type: Opaque
stringData:
username: <FSx for ONTAP, for example fsxadmin>
password: <FSx for ONTAP password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-fsx-ontap-nas
spec:
version: 1
backendName: fsx-ontap
storageDriverName: ontap-nas
managementLIF: <Management DNS name>
dataLIF: <NFS DNS name>
svm: <SVM NAME>
credentials:
name: backend-fsx-ontap-nas-secret
StorageClass 定义(另存为 sc-fsx-nas.yaml):
# sc-fsx-nas.yaml (storage class name is trident-csi)
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: trident-csi
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas"
fsType: "ext4"
allowVolumeExpansion: true
reclaimPolicy: Retain
为 Amazon FSx for NetApp ONTAP 配置 ONTAP SAN,创建 TridentBackendConfig 和 StorageClass,以便在 ROSA 集群上启用基于 iSCSI 的块存储配置。后端配置使用 ontap-san 驱动,并包含存储在 Kubernetes Secret 中的凭据。确保工作节点已为 iSCSI 访问做好准备。
后端 secret 和后端配置文件(另存为 tbc-fsx-iscsi.yaml):
# tbc-fsx-iscsi.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-fsx-iscsi-secret
type: Opaque
stringData:
username: <FSx for ONTAP, for example fsxadmin>
password: <FSx for ONTAP password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: fsx-iscsi
spec:
version: 1
storageDriverName: ontap-san
managementLIF: <Management DNS name>
backendName: fsx-iscsi
svm: <SVM name>
credentials:
name: backend-tbc-fsx-iscsi-secret
StorageClass 定义(另存为 sc-fsx-iscsi.yaml):
# sc-fsx-iscsi.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-fsx-iscsi
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san"
media: "ssd"
provisioningType: "thin"
fsType: ext4
snapshots: "true"
allowVolumeExpansion: true
步骤 3:创建 VolumeSnapshotClass 配置文件
为本地和 ROSA 部署创建 VolumeSnapshotClass 定义。此配置为持久卷启用基于快照的操作。
VolumeSnapshotClass 定义(另存为 snapshot-class.yaml):
# snapshot-class.yaml
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: trident-snapshotclass
driver: csi.trident.netapp.io
deletionPolicy: Retain
步骤 4:将配置文件应用于集群
将前面步骤中创建的配置文件应用于 OpenShift 集群。
-
为您配置的每个协议应用 TridentBackendConfig 和 StorageClass 文件。
对于本地集群:
oc create -f tbc-nas.yaml -n trident oc create -f sc-nas.yaml oc create -f tbc-nas-economy.yaml -n trident oc create -f sc-nas-economy.yaml oc create -f tbc-iscsi.yaml -n trident oc create -f sc-iscsi.yaml oc create -f tbc-nvme.yaml -n trident oc create -f sc-nvme.yaml oc create -f tbc-fc.yaml -n trident oc create -f sc-fc.yaml对于 ROSA 集群:
oc create -f tbc-fsx-nas.yaml -n trident oc create -f sc-fsx-nas.yaml oc create -f tbc-fsx-iscsi.yaml -n trident oc create -f sc-fsx-iscsi.yaml -
应用 VolumeSnapshotClass 配置。
oc create -f snapshot-class.yaml -
验证资源是否已成功创建。
检查 TridentBackendConfig 对象:
oc get tbc -n trident检查 StorageClass 对象:
oc get storageclass检查 VolumeSnapshotClass:
oc get volumesnapshotclass
第 5 步:设置默认 Trident 存储和快照类
将 Trident StorageClass 和 VolumeSnapshotClass 设置为 OpenShift 集群中的默认值。这是 OpenShift Virtualization 为 VM 模板创建黄金映像源所必需的。
-
设置默认 Trident StorageClass。
将 Trident 支持的 StorageClass 设置为集群默认值,以便在未指定存储类时 PersistentVolumeClaims 自动使用它。您需要配置两个注释:一个用于集群范围的默认值,一个特定于 OpenShift Virtualization。
-
设置集群范围的默认 StorageClass 注释。
确保仅将一个 StorageClass 设置为默认值。如果另一个 StorageClass 已设置为默认值,则将其注释设置为 false。
在控制台中,编辑标注:
storageclass.kubernetes.io/is-default-class: "true"从 CLI:
kubectl patch storageclass <storage class name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' -
设置 OpenShift Virtualization 特定的默认注释。
OpenShift Virtualization 使用优先于集群常规 `is-default-class`注释的特定注释。如果另一个 StorageClass 已设置为默认值,则将其注释设置为 false。
在控制台中,编辑标注:
storageclass.kubevirt.io/is-default-virt-class: "true"从 CLI:
kubectl patch storageclass <storage class name> -p '{"metadata": {"annotations":{"storageclass.kubevirt.io/is-default-virt-class": "true"}}}' -
-
设置默认 Trident VolumeSnapshotClass。
将 Trident 支持的 VolumeSnapshotClass 设置为集群默认值,为持久卷启用基于快照的操作。这可确保在未指定快照类时 VolumeSnapshots 自动使用 Trident CSI 驱动程序,并允许 OpenShift Virtualization 创建黄金映像的快照。
确保仅将一个 VolumeSnapshotClass 设置为默认值。如果另一个 VolumeSnapshotClass 已设置为默认值,则将其注释设置为 false。
在控制台中,编辑标注:
snapshot.storage.kubernetes.io/is-default-class: "true"从 CLI:
oc patch volumesnapshotclass <snapshot class name> --type=merge -p '{"metadata":{"annotations":{"snapshot.storage.kubernetes.io/is-default-class":"true"}}}'