準備使用ONTAP 不含NAS的驅動程式來設定後端
瞭解使用 ONTAP NAS 驅動程式設定 ONTAP 後端的需求、驗證選項和匯出原則。
需求
-
對於所有 ONTAP 後端、 Trident 至少需要指派一個 Aggregate 給 SVM 。
-
您可以執行多個驅動程式、並建立指向其中一個或另一個的儲存類別。例如、您可以設定使用的Gold類別
ontap-nas
驅動程式和銅級、使用ontap-nas-economy
一、 -
您所有的Kubernetes工作節點都必須安裝適當的NFS工具。請參閱 "請按這裡" 以取得更多詳細資料。
-
Trident 僅支援掛載至 Windows 節點上執行的 Pod 的 SMB 磁碟區。如 準備配置SMB磁碟區 需詳細資訊、請參閱。
驗證 ONTAP 後端
Trident 提供兩種驗證 ONTAP 後端的模式。
-
認證型:此模式需要對 ONTAP 後端擁有足夠的權限。建議您使用與預先定義的安全登入角色相關聯的帳戶、例如
admin
或vsadmin
以確保與ONTAP 更新版本的最大相容性。 -
憑證型:此模式需要在後端安裝憑證、 Trident 才能與 ONTAP 叢集通訊。在此處、後端定義必須包含用戶端憑證、金鑰及信任的CA憑證(建議使用)的Base64編碼值。
您可以更新現有的後端、以便在認證型和憑證型方法之間移動。不過、一次只支援一種驗證方法。若要切換至不同的驗證方法、您必須從後端組態中移除現有方法。
如果您嘗試同時提供*認證與認證*、後端建立將會失敗、並在組態檔中提供多種驗證方法。 |
啟用認證型驗證
Trident 需要 SVM 範圍 / 叢集範圍管理員的認證、才能與 ONTAP 後端通訊。建議您使用標準的預先定義角色、例如 admin`或 `vsadmin
。如此可確保與未來 ONTAP 版本的前移相容性、這些版本可能會公開未來 Trident 版本所使用的功能 API 。自訂安全登入角色可建立並搭配 Trident 使用、但不建議使用。
後端定義範例如下所示:
--- version: 1 backendName: ExampleBackend storageDriverName: ontap-nas managementLIF: 10.0.0.1 dataLIF: 10.0.0.2 svm: svm_nfs username: vsadmin password: password
{ "version": 1, "backendName": "ExampleBackend", "storageDriverName": "ontap-nas", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.2", "svm": "svm_nfs", "username": "vsadmin", "password": "password" }
請記住、後端定義是唯一以純文字儲存認證的位置。建立後端之後、使用者名稱/密碼會以Base64編碼、並儲存為Kubernetes機密。建立/更新後端是唯一需要知道認證資料的步驟。因此、這是一項純管理員操作、由Kubernetes /儲存管理員執行。
啟用憑證型驗證
新的和現有的後端可以使用憑證、並與ONTAP 該後端通訊。後端定義需要三個參數。
-
用戶端憑證:用戶端憑證的Base64編碼值。
-
用戶端私密金鑰:關聯私密金鑰的Base64編碼值。
-
信任的CACertifate:受信任CA憑證的Base64編碼值。如果使用信任的CA、則必須提供此參數。如果未使用信任的CA、則可忽略此問題。
典型的工作流程包括下列步驟。
-
產生用戶端憑證和金鑰。產生時、請將Common Name(CN)(一般名稱(CN))設定為ONTAP 驗證身分。
openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -keyout k8senv.key -out k8senv.pem -subj "/C=US/ST=NC/L=RTP/O=NetApp/CN=vsadmin"
-
將信任的CA憑證新增ONTAP 至整個叢集。這可能已由儲存管理員處理。如果未使用信任的CA、請忽略。
security certificate install -type server -cert-name <trusted-ca-cert-name> -vserver <vserver-name> ssl modify -vserver <vserver-name> -server-enabled true -client-enabled true -common-name <common-name> -serial <SN-from-trusted-CA-cert> -ca <cert-authority>
-
在ONTAP 支援叢集上安裝用戶端憑證和金鑰(步驟1)。
security certificate install -type client-ca -cert-name <certificate-name> -vserver <vserver-name> security ssl modify -vserver <vserver-name> -client-enabled true
-
確認ONTAP 支援「cert」驗證方法的支援功能。
security login create -user-or-group-name vsadmin -application ontapi -authentication-method cert -vserver <vserver-name> security login create -user-or-group-name vsadmin -application http -authentication-method cert -vserver <vserver-name>
-
使用產生的憑證測試驗證。以ONTAP Management LIF IP和SVM名稱取代<SfManagement LIF>和<vserver name>。您必須確保LIF的服務原則設定為「預設資料管理」。
curl -X POST -Lk https://<ONTAP-Management-LIF>/servlets/netapp.servlets.admin.XMLrequest_filer --key k8senv.key --cert ~/k8senv.pem -d '<?xml version="1.0" encoding="UTF-8"?><netapp xmlns="http://www.netapp.com/filer/admin" version="1.21" vfiler="<vserver-name>"><vserver-get></vserver-get></netapp>'
-
使用Base64編碼憑證、金鑰和信任的CA憑證。
base64 -w 0 k8senv.pem >> cert_base64 base64 -w 0 k8senv.key >> key_base64 base64 -w 0 trustedca.pem >> trustedca_base64
-
使用從上一步取得的值建立後端。
cat cert-backend-updated.json { "version": 1, "storageDriverName": "ontap-nas", "backendName": "NasBackend", "managementLIF": "1.2.3.4", "dataLIF": "1.2.3.8", "svm": "vserver_test", "clientCertificate": "Faaaakkkkeeee...Vaaalllluuuueeee", "clientPrivateKey": "LS0tFaKE...0VaLuES0tLS0K", "storagePrefix": "myPrefix_" } #Update backend with tridentctl tridentctl update backend NasBackend -f cert-backend-updated.json -n trident +------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +------------+----------------+--------------------------------------+--------+---------+ | NasBackend | ontap-nas | 98e19b74-aec7-4a3d-8dcf-128e5033b214 | online | 9 | +------------+----------------+--------------------------------------+--------+---------+
更新驗證方法或旋轉認證資料
您可以更新現有的後端、以使用不同的驗證方法或旋轉其認證資料。這兩種方法都可行:使用使用者名稱/密碼的後端可更新以使用憑證;使用憑證的後端可更新為使用者名稱/密碼。若要這麼做、您必須移除現有的驗證方法、然後新增驗證方法。然後使用更新的backend.json檔案、其中包含要執行的必要參數 tridentctl update backend
。
cat cert-backend-updated.json { "version": 1, "storageDriverName": "ontap-nas", "backendName": "NasBackend", "managementLIF": "1.2.3.4", "dataLIF": "1.2.3.8", "svm": "vserver_test", "username": "vsadmin", "password": "password", "storagePrefix": "myPrefix_" } #Update backend with tridentctl tridentctl update backend NasBackend -f cert-backend-updated.json -n trident +------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +------------+----------------+--------------------------------------+--------+---------+ | NasBackend | ontap-nas | 98e19b74-aec7-4a3d-8dcf-128e5033b214 | online | 9 | +------------+----------------+--------------------------------------+--------+---------+
當您旋轉密碼時、儲存管理員必須先更新ONTAP 使用者的密碼(位於BIOS)。接著是後端更新。在循環憑證時、可將多個憑證新增至使用者。然後更新後端以使用新的憑證、之後可從ONTAP 該叢集刪除舊的憑證。 |
更新後端不會中斷對已建立之磁碟區的存取、也不會影響之後建立的磁碟區連線。成功的後端更新表示 Trident 可以與 ONTAP 後端通訊、並處理未來的 Volume 作業。
為 Trident 建立自訂 ONTAP 角色
您可以使用最低 Privileges 來建立 ONTAP 叢集角色、這樣就不需要使用 ONTAP 管理員角色來執行 Trident 中的作業。當您在 Trident 後端組態中包含使用者名稱時、 Trident 會使用您建立的 ONTAP 叢集角色來執行作業。
如需建立 Trident 自訂角色的詳細資訊、請參閱"Trident 自訂角色產生器"。
-
使用下列命令建立新角色:
security login role create <role_name\> -cmddirname "command" -access all –vserver <svm_name\>
-
為 Trident 使用者建立使用者名稱:
security login create -username <user_name\> -application ontapi -authmethod <password\> -role <name_of_role_in_step_1\> –vserver <svm_name\> -comment "user_description"
-
將角色對應至使用者:
security login modify username <user_name\> –vserver <svm_name\> -role <role_name\> -application ontapi -application console -authmethod <password\>
在 ONTAP 系統管理員中執行下列步驟:
-
* 建立自訂角色 * :
-
若要在叢集層級建立自訂角色、請選取 * 叢集 > 設定 * 。
(或)若要在 SVM 層級建立自訂角色、請選取 * 儲存設備 > 儲存 VM > >
required SVM
設定 > 使用者與角色 * 。 -
選取 * 使用者和角色 * 旁的箭頭圖示( * → * )。
-
在 * 角色 * 下選擇 +Add 。
-
定義角色的規則、然後按一下 * 儲存 * 。
-
-
* 將角色對應至 Trident 使用者 * : + 在「 * 使用者與角色 * 」頁面上執行下列步驟:
-
在 * 使用者 * 下選取新增圖示 + 。
-
選取所需的使用者名稱、然後在 * 角色 * 的下拉式功能表中選取角色。
-
按一下「 * 儲存 * 」。
-
如需詳細資訊、請參閱下列頁面:
管理NFS匯出原則
Trident 使用 NFS 匯出原則來控制對其所配置之磁碟區的存取。
Trident 在使用匯出原則時提供兩個選項:
-
Trident 可以動態管理匯出原則本身;在此作業模式中、儲存管理員會指定代表可接受 IP 位址的 CIDR 區塊清單。Trident 會在發佈時自動將屬於這些範圍的適用節點 IP 新增至匯出原則。或者、如果未指定 CIDR 、則在要發佈的磁碟區所在節點上找到的所有全域範圍單點傳播 IP 都會新增至匯出原則。
-
儲存管理員可以建立匯出原則、並手動新增規則。除非在組態中指定不同的匯出原則名稱、否則 Trident 會使用預設匯出原則。
動態管理匯出原則
Trident 提供動態管理 ONTAP 後端匯出原則的功能。這可讓儲存管理員為工作節點IP指定允許的位址空間、而非手動定義明確的規則。它可大幅簡化匯出原則管理;修改匯出原則不再需要在儲存叢集上進行手動介入。此外、這有助於將儲存叢集的存取限制在裝載磁碟區且指定範圍內有 IP 的工作節點、以支援精細且自動化的管理。
使用動態匯出原則時、請勿使用網路位址轉譯( NAT )。使用 NAT 時、儲存控制器會看到前端 NAT 位址、而非實際 IP 主機位址、因此在匯出規則中找不到相符項目時、就會拒絕存取。 |
在 Trident 24.10 中、 `ontap-nas`儲存驅動程式將繼續如舊版一樣運作; ONTAP NAS 驅動程式並未進行任何變更。只有儲存驅動程式才能 `ontap-nas-economy`在 Trident 24.10 中進行 Volume 型精細存取控制。 |
範例
必須使用兩種組態選項。以下是後端定義範例:
--- version: 1 storageDriverName: ontap-nas-economy backendName: ontap_nas_auto_export managementLIF: 192.168.0.135 svm: svm1 username: vsadmin password: password autoExportCIDRs: - 192.168.0.0/24 autoExportPolicy: true
使用此功能時、您必須確保SVM中的根連接點具有先前建立的匯出原則、並具有允許節點CIDR區塊(例如預設匯出原則)的匯出規則。請務必遵循 NetApp 建議的最佳實務做法、將 SVM 專用於 Trident 。 |
以下是使用上述範例說明此功能的運作方式:
-
autoExportPolicy`設定為 `true
。這表示 Trident 會為使用此後端為 SVM 佈建的每個 Volume 建立匯出原則svm1
、並使用位址區塊來處理規則的新增和刪除autoexportCIDRs
。在磁碟區附加至節點之前、該磁碟區會使用沒有規則的空匯出原則、以防止不必要的存取該磁碟區。當磁碟區發佈至節點 Trident 時、會建立一個匯出原則、其名稱與包含指定 CIDR 區塊內節點 IP 的基礎 qtree 相同。這些 IP 也會新增至父 FlexVol 所使用的匯出原則。-
例如:
-
後端 UUID 403b5326-8482-40der-96d0-d83fb3f4daec
-
autoExportPolicy`設定為 `true
-
儲存字首
trident
-
PVC UUID a79bcf5f-7b6d-4a40-9876-e2551f159c1c
-
qtree 名稱為 Trident _PVC_a79bcf5f_7b6d_4a40_9876_e2551f159c1c FlexVol 、會為命名的 qtree 建立匯出原則、為命名的 qtree 建立匯
trident-403b5326-8482-40db96d0-d83fb3f4daec`出原則、
。FlexVol 匯出原則的規則將是 qtree 匯出原則所包含的任何規則的超集。未附加的任何磁碟區都會重複使用空的匯出原則。
`trident_pvc_a79bcf5f_7b6d_4a40_9876_e2551f159c1c`以及在 SVM 上命名的空白匯出原則 `trident_empty
-
-
-
`autoExportCIDRs`包含位址區塊清單。此欄位為選用欄位、預設為「0.00.0.0/0」、「:/0」。如果未定義、 Trident 會新增所有在工作節點上找到的全域範圍單點傳播位址、並提供出版物。
在此範例中 192.168.0.0/24
、會提供位址空間。這表示位於此位址範圍內的 Kubernetes 節點 IP 與出版物將會新增至 Trident 所建立的匯出原則。當 Trident 登錄其執行的節點時,它會擷取節點的 IP 位址,並對照中提供的位址區塊進行檢查 autoExportCIDRs
。在發佈時,在篩選 IP 之後, Trident 會為其所發佈節點的用戶端 IP 建立匯出原則規則。
您可以在建立後端後、更新「AutoExpportPolicy」和「AutoExpportCTR」。您可以為自動管理或刪除現有CIDR的後端附加新的CIDR。刪除CIDR時請務必謹慎、以確保不會中斷現有的連線。您也可以選擇停用後端的「autodportPolicy」、然後回到手動建立的匯出原則。這需要在後端組態中設定「exportPolicy」參數。
Trident 建立或更新後端之後、您可以使用或對應的 tridentbackend
CRD 來檢查後端 tridentctl
:
./tridentctl get backends ontap_nas_auto_export -n trident -o yaml items: - backendUUID: 403b5326-8482-40db-96d0-d83fb3f4daec config: aggregate: "" autoExportCIDRs: - 192.168.0.0/24 autoExportPolicy: true backendName: ontap_nas_auto_export chapInitiatorSecret: "" chapTargetInitiatorSecret: "" chapTargetUsername: "" chapUsername: "" dataLIF: 192.168.0.135 debug: false debugTraceFlags: null defaults: encryption: "false" exportPolicy: <automatic> fileSystemType: ext4
移除節點時、 Trident 會檢查所有匯出原則、以移除對應於節點的存取規則。透過從受管理後端的匯出原則中移除此節點 IP 、 Trident 可防止惡意掛載、除非叢集中的新節點重複使用此 IP 。
對於先前存在的後端、使用更新後端 `tridentctl update backend`可確保 Trident 自動管理匯出原則。這會在需要時建立兩個以後端 UUID 和 qtree 名稱命名的新匯出原則。後端上的磁碟區會在新建立的匯出原則卸載並重新掛載之後、使用這些原則。
刪除具有自動管理匯出原則的後端、將會刪除動態建立的匯出原則。如果重新建立後端、則會將其視為新的後端、並導致建立新的匯出原則。 |
如果即時節點的 IP 位址已更新、您必須在節點上重新啟動 Trident Pod 。然後 Trident 會更新匯出原則、以反映其所管理的 IP 變更。
準備配置SMB磁碟區
只需稍加準備、您就可以使用來配置 SMB 磁碟區 ontap-nas
驅動程式:
您必須在 SVM 上同時設定 NFS 和 SMB/CIFS 通訊協定、才能建立 ontap-nas-economy 適用於內部部署 ONTAP 的 SMB Volume 。若未設定上述任一種通訊協定、將導致 SMB 磁碟區建立失敗。
|
`autoExportPolicy`不支援 SMB Volume 。 |
在配置 SMB 磁碟區之前、您必須具備下列項目。
-
Kubernetes叢集具備Linux控制器節點、以及至少一個執行Windows Server 2022的Windows工作節點。Trident 僅支援掛載至 Windows 節點上執行的 Pod 的 SMB 磁碟區。
-
至少有一個 Trident 機密包含您的 Active Directory 認證。產生機密
smbcreds
:kubectl create secret generic smbcreds --from-literal username=user --from-literal password='password'
-
設定為Windows服務的SCSI Proxy。若要設定
csi-proxy
、請參閱 "GitHub:csi Proxy" 或 "GitHub:適用於Windows的SCSI Proxy" 適用於Windows上執行的Kubernetes節點。
-
對於內部部署 ONTAP 、您可以選擇性地建立 SMB 共用、或 Trident 可以為您建立 SMB 共用。
Amazon FSX for ONTAP 需要 SMB 共享。 您可以使用兩種方式之一來建立SMB管理共用區 "Microsoft管理主控台" 共享資料夾嵌入式管理單元或使用ONTAP CLI。若要使用ONTAP CLI建立SMB共用:
-
如有必要、請建立共用的目錄路徑結構。
。
vserver cifs share create
命令會在共用建立期間檢查-path選項中指定的路徑。如果指定的路徑不存在、則命令會失敗。 -
建立與指定SVM相關的SMB共用區:
vserver cifs share create -vserver vserver_name -share-name share_name -path path [-share-properties share_properties,...] [other_attributes] [-comment text]
-
確認共用區已建立:
vserver cifs share show -share-name share_name
請參閱 "建立SMB共用區" 以取得完整詳細資料。
-
-
建立後端時、您必須設定下列項目以指定SMB Volume。如需ONTAP 所有的FSXfor Sendbackend組態選項、請參閱 "FSX提供ONTAP 各種組態選項和範例"。
參數 說明 範例 smbShare
您可以指定下列其中一項:使用 Microsoft 管理主控台或 ONTAP CLI 建立的 SMB 共用名稱;允許 Trident 建立 SMB 共用的名稱;或將參數保留空白以防止共用磁碟區。對於內部部署 ONTAP 、此參數為選用項目。Amazon FSX 需要此參數才能支援 ONTAP 後端、且不可為空白。
smb-share
nasType
*必須設定為
smb
.*如果為null、則預設為nfs
。smb
《生態樣式》
新磁碟區的安全樣式。必須設定為
ntfs
或mixed
適用於SMB磁碟區。ntfs
或mixed
適用於SMB磁碟區「unixPermissions」
新磁碟區的模式。SMB磁碟區*必須保留為空白。*
"