Skip to main content
NetApp virtualization solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

在 Red Hat OpenShift 叢集上安裝 Trident 並建立儲存物件

貢獻者 banum-netapp netapp-jsnyder kevin-hoke

使用經過 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 說明文件"。

步驟
  1. 在 OperatorHub 中、選取 Certified NetApp Trident。

    顯示範例

    營運商樞紐

  2. 在 Install 頁面上,保持最新版本並選擇 Install 。

    顯示範例

    安裝

  3. 安裝操作員後,選擇 View operator 並建立 Trident Orchestrator 實例。

    如果要為 iSCSI 準備工作節點,請切換到 YAML 視圖並新增 iscsi`至 `nodePrep。

    顯示範例

    新增 iscsi 以準備節點

  4. 確認叢集中所有 Trident Pod 都正在運作。

    顯示範例

    安裝Trident

  5. 如果您啟用了 iSCSI 節點準備,請登入工作節點並驗證 `iscsid`和 `multipathd`是否處於活動狀態,以及 `multipath.conf`是否具有條目。

    顯示範例

    iscsid 正在運行

    顯示範例

    多路徑運行

    顯示範例

    multipath.conf 檔案執行中

影片示範

以下影片示範如何使用紅帽認證的 Trident Operator 安裝 Trident。

在 OpenShift 中使用經過認證的Trident Operator 安裝Trident 25.02.1

步驟 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 中的憑證。

後端配置基本選項的重要指南
  1. 後端設定檔參考您的 ONTAP SVM 和管理 LIF。+

  2. 您可以使用使用者名稱和密碼對 ONTAP 進行驗證。可以是叢集管理員或 vserver 管理員的使用者名稱和密碼。+

  3. 您也可以使用用戶端憑證進行 ONTAP 身份驗證。有關如何產生用戶端憑證、私密金鑰和 CA 憑證的詳細資訊,請參閱 "Trident 文件在此"。

NAS 經濟型驅動程式後端組態選項的基本指南

以下參數可用於配置 NAS economy driver:

  1. qtreesPerFlexvol 該值必須在 50-300 範圍內,預設值為 200。+

  2. limitVolumePoolSize 此值是您在 ontap-nas-economy 後端使用 qtrees 時所要求的最大 FlexVol 大小。未設定預設值,且預設不強制執行此參數。如果設定此參數,Trident 運算子會在目前的 FlexVol 達到指定大小時建立新的 FlexVol。此參數可透過限制用於佈建 PV 的 FlexVols 大小,協助您控制叢集中的容量使用率。+

  3. denyNewVolumePools 此參數限制 ontap-nas-economy 後端建立新 FlexVol 磁碟區來包含其 qtree。僅使用預先存在的 FlexVol 來佈建新的 PV。

SAN 驅動程式後端組態選項的基本準則

以下參數可用於 SAN 驅動程式配置:

  1. limitVolumeSize 此值是您在使用 SAN 後端時要求的最大磁碟區大小。未設定預設值,且預設不強制執行此參數。如果您設定此參數,則當請求的磁碟區大小超過此值時,Trident operator 將無法完成佈建。您可以使用此參數來限制其為 LUN 管理的磁碟區的最大大小。+

  2. lunsPerFlexvol 每個 FlexVol 的最大 LUN 數量,必須在 [50, 200] 範圍內,預設值為 100。如果設定此參數,Trident operator 會在目前 FlexVol 的 LUN 數量達到指定值時建立新的 FlexVol。此參數可透過限制每個 FlexVol 用於佈建 PV 的 LUN 數量,協助您控制叢集中的容量使用率。

SAN 經濟型驅動程式後端設定選項的基本指南

以下參數可用於配置 SAN economy driver:

  1. limitVolumePoolSize 此值是您在使用 SAN 經濟型後端時所要求的最大 FlexVol 容量。未設定預設值,且預設不強制執行此參數。如果設定此參數,Trident 操作員將限制可用於在 flexvol 中建立 LUN 的最大 flexvol 容量。此參數可透過限制用於配置 PV 的 FlexVols 容量大小,協助您控制叢集中的容量使用率。+

  2. denyNewVolumePools 此參數限制 SAN 經濟型後端建立新的 FlexVol 磁碟區來包含其 LUN。僅使用預先存在的 Flexvols 來佈建新的 PV。

佈建磁碟區後端組態選項的基本指南
註 在每個協定提供的範例 YAML 檔案中,如果未提供 storagePrefix,則使用預設前綴「trident」。當使用 ontap-nas-economy 且 storagePrefix 為 24 個字元或更多字元時,qtree 中不會嵌入儲存前綴,但磁碟區名稱中會包含該前綴。

當您直接從系統管理員或 CLI 在 ONTAP 中建立磁碟區時,若未為所有選用參數提供值,則在磁碟區佈建期間會自動設定一些預設值,如下所示。

在 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 後端設定建立的磁碟區

但是,當您在 Trident 後端配置的預設部分設定值時,您可以建立具有特定參數值的磁碟區。在下列範例中,snapshotPolicy 設定為預設原則(如果您未明確設定任何內容,則為 none),並且 snapshotDir 在後端配置 YAML 的預設部分中設定為 true。透過這些設定,您可以看到後端磁碟區獲得了這些值。(snapdir-access 為 true,snapshot-policy 為 default)

具有顯式值的預設部分

在後端配置中明確設定 snapshotDir 和 snapshotPolicy 值

明確設定磁碟區中的 snapshotDir 和 snapshotPolicy 值

其他所有附加參數,請參閱 Trident 文件:

NAS

為 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
NAS 經濟

建立 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 經濟型驅動程式後端組態選項的基本準則」一節。
iSCSI SAN

為 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
NVMe/TCP SAN

建立 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。
FC SAN

建立 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
iSCSI SAN 經濟型

建立 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。

NAS

建立 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
iSCSI

建立 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 叢集。

步驟
  1. 為您配置的每個協定套用 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
  2. 應用 VolumeSnapshotClass 配置。

    oc create -f snapshot-class.yaml
  3. 確認資源已成功建立。

    檢查 TridentBackendConfig 物件:

    oc get tbc -n trident

    檢查 StorageClass 物件:

    oc get storageclass

    檢查 VolumeSnapshotClass:

    oc get volumesnapshotclass

步驟 5:設定預設的 Trident 儲存和快照類別

將 Trident StorageClass 和 VolumeSnapshotClass 設定為 OpenShift 叢集中的預設值。這是 OpenShift Virtualization 為 VM 範本建立黃金映像來源所必需的。

步驟
  1. 設定預設的 Trident StorageClass。

    將 Trident 支援的 StorageClass 設定為叢集預設值,以便在未指定儲存類別時,PersistentVolumeClaims 自動使用它。您需要設定兩個註解:一個用於叢集範圍的預設值,另一個專門用於 OpenShift Virtualization。

    1. 設定叢集範圍的預設 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"}}}'
    2. 設定 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"}}}'
  2. 設定預設的 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"}}}'