在 Red Hat OpenShift 叢集上安裝 Trident 並建立儲存物件
使用經過 Red Hat 認證的 Trident Operator 安裝 Trident,並為 ONTAP 和 Amazon FSx for NetApp ONTAP 建立儲存物件,以啟用容器和 VM 的動態磁碟區資源配置。必要時準備工作節點以進行區塊存取。
-
請先完成此頁面上的步驟,然後再安裝 OpenShift Virtualization。OpenShift Virtualization 需要一個預設的 Trident 支援的 StorageClass 和 VolumeSnapshotClass 用於建立虛擬機範本的黃金鏡像。
-
如果您在設定 Trident 之前已安裝 OpenShift Virtualization,請刪除所有使用其他儲存類別建立的黃金鏡像。將 Trident 設為預設儲存空間後,OpenShift Virtualization 將使用 Trident 儲存重新建立黃金鏡像。
oc delete dv,VolumeSnapshot -n openshift-virtualization-os-images --selector=cdi.kubevirt.io/dataImportCron
步驟 1:安裝 Trident
Red Hat 認證的 Trident Operator 由 NetApp 支援,適用於 OpenShift 內部部署、公有雲以及 ROSA 等託管服務。從 Trident 25.02 開始,當您使用 Amazon FSx for NetApp ONTAP 並計劃執行 OpenShift Virtualization VM 工作負載時,該 Operator 也可以為 iSCSI 準備工作節點。
有關其他安裝選項,請參閱 "Trident 說明文件"。
-
在 OperatorHub 中、選取 Certified NetApp Trident。
顯示範例

-
在 Install 頁面上,保持最新版本並選擇 Install 。
顯示範例

-
安裝操作員後,選擇 View operator 並建立 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(用於 Fibre Channel 區塊儲存)。
為每個協定建立一個 TridentBackendConfig 和 StorageClass。後端設定包含儲存在 Kubernetes Secret 中的憑證。
後端配置基本選項的重要指南
-
後端設定檔參考您的 ONTAP SVM 和管理 LIF。+
-
您可以使用使用者名稱和密碼對 ONTAP 進行驗證。可以是叢集管理員或 vserver 管理員的使用者名稱和密碼。+
-
您也可以使用用戶端憑證進行 ONTAP 身份驗證。有關如何產生用戶端憑證、私密金鑰和 CA 憑證的詳細資訊,請參閱 "Trident 文件在此"。
NAS 經濟型驅動程式後端組態選項的基本指南
以下參數可用於配置 NAS economy driver:
-
qtreesPerFlexvol 該值必須在 50-300 範圍內,預設值為 200。+
-
limitVolumePoolSize 此值是您在 ontap-nas-economy 後端使用 qtrees 時所要求的最大 FlexVol 大小。未設定預設值,且預設不強制執行此參數。如果設定此參數,Trident 運算子會在目前的 FlexVol 達到指定大小時建立新的 FlexVol。此參數可透過限制用於佈建 PV 的 FlexVols 大小,協助您控制叢集中的容量使用率。+
-
denyNewVolumePools 此參數限制 ontap-nas-economy 後端建立新 FlexVol 磁碟區來包含其 qtree。僅使用預先存在的 FlexVol 來佈建新的 PV。
SAN 驅動程式後端組態選項的基本準則
以下參數可用於 SAN 驅動程式配置:
-
limitVolumeSize 此值是您在使用 SAN 後端時要求的最大磁碟區大小。未設定預設值,且預設不強制執行此參數。如果您設定此參數,則當請求的磁碟區大小超過此值時,Trident operator 將無法完成佈建。您可以使用此參數來限制其為 LUN 管理的磁碟區的最大大小。+
-
lunsPerFlexvol 每個 FlexVol 的最大 LUN 數量,必須在 [50, 200] 範圍內,預設值為 100。如果設定此參數,Trident operator 會在目前 FlexVol 的 LUN 數量達到指定值時建立新的 FlexVol。此參數可透過限制每個 FlexVol 用於佈建 PV 的 LUN 數量,協助您控制叢集中的容量使用率。
SAN 經濟型驅動程式後端設定選項的基本指南
以下參數可用於配置 SAN economy driver:
-
limitVolumePoolSize 此值是您在使用 SAN 經濟型後端時所要求的最大 FlexVol 容量。未設定預設值,且預設不強制執行此參數。如果設定此參數,Trident 操作員將限制可用於在 flexvol 中建立 LUN 的最大 flexvol 容量。此參數可透過限制用於配置 PV 的 FlexVols 容量大小,協助您控制叢集中的容量使用率。+
-
denyNewVolumePools 此參數限制 SAN 經濟型後端建立新的 FlexVol 磁碟區來包含其 LUN。僅使用預先存在的 Flexvols 來佈建新的 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 設定為預設原則(如果您未明確設定任何內容,則為 none),並且 snapshotDir 在後端配置 YAML 的預設部分中設定為 true。透過這些設定,您可以看到後端磁碟區獲得了這些值。(snapdir-access 為 true,snapshot-policy 為 default)



其他所有附加參數,請參閱 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 經濟型驅動程式使用,並透過 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 經濟型驅動程式後端組態選項的基本準則」一節。 |
為 ONTAP SAN 建立 TridentBackendConfig 和 StorageClass,並搭配 iSCSI 以啟用基於 iSCSI 的區塊儲存佈建。後端組態使用 ontap-san 驅動程式,並包含儲存在 Kubernetes Secret 中的認證。若省略 sanType 參數,則預設使用 iSCSI 通訊協定。
使用使用者名稱密碼認證的後端金鑰和後端設定檔案(另存為 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
使用用戶端憑證認證的後端金鑰和後端設定檔案(另存為 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
建立 TridentBackendConfig 和 StorageClass 用於 ONTAP SAN 的 NVMe over TCP 連接,以實現高效能區塊儲存配置。後端配置使用針對 NVMe/TCP 傳輸最佳化的 ontap-san 驅動程序,並包含儲存在 Kubernetes 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
使用用戶端憑證認證的後端金鑰和後端設定檔案(另存為 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 中引入的 Super-subsystem 模型和 Trident 26.02 之前的 Per-volume subsystem 模型的詳細資訊,請參閱 Trident 文件: https://docs.netapp.com/us-en/trident/trident-use/ontap-san-prep.html#nvme-tcp-considerations。 |
建立 TridentBackendConfig 和 StorageClass 以用於 ONTAP SAN 與光纖通道(Fibre Channel),以啟用基於 FC 的區塊儲存配置。後端配置使用 ontap-san 驅動程式,並指定了 FCP 協定,同時包含儲存在 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
使用用戶端憑證認證的後端金鑰和後端設定檔案(另存為 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
建立 TridentBackendConfig 和 StorageClass,以搭配 iSCSI 使用 ONTAP SAN economy,進而啟用基於 iSCSI 的區塊儲存佈建。後端組態使用 ontap-san-economy 驅動程式搭配 iSCSI 通訊協定,並包含儲存於 Kubernetes 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 驅動程式支援的存取模式和磁碟區模式資訊。
ROSA 叢集與 Amazon FSx for NetApp ONTAP
為每個要設定的協定建立 YAML 檔案。您可以設定以下一種或兩種協定:用於基於 NFS 的檔案儲存的 NAS,或用於區塊儲存的 iSCSI。
建立 TridentBackendConfig 和 StorageClass 適用於 Amazon FSx for NetApp ONTAP 和 ONTAP NAS 的配置,以在 ROSA 叢集上啟用基於 NFS 的持久性儲存配置。後端設定使用 Amazon FSx for NetApp ONTAP DNS 名稱作為管理和資料 LIF,並包含儲存在 trident 命名空間中的 Kubernetes 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
建立 TridentBackendConfig 和 StorageClass 適用於 Amazon FSx for NetApp ONTAP 和 ONTAP SAN 的配置,以便在 ROSA 叢集上啟用基於 iSCSI 的區塊儲存配置。後端配置使用 ontap-san 驅動程式,並包含儲存在 Kubernetes Secret 中的憑證。確保工作節點已準備好進行 iSCSI 存取。
後端密鑰和後端組態檔(另存為 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"}}}'