準備工作節點
Kubernetes叢集中的所有工作節點都必須能夠掛載您已為Pod配置的磁碟區。若要準備工作節點,您必須根據您選擇的驅動程式來安裝 NFS , iSCSI , NVMe / TCP 或 FC 工具。
選擇適當的工具
如果您使用的是驅動程式組合、則應該安裝所有必要的驅動程式工具。Red Hat Enterprise Linux CoreOS ( RHCOS )的最新版本預設會安裝工具。
"安裝 NFS 工具"如果您正在使用: ontap-nas , ontap-nas-economy , ontap-nas-flexgroup , 或者 azure-netapp-files。
"安裝iSCSI工具" 如果您使用的是: ontap-san、 ontap-san-economy、 solidfire-san。
"安裝 NVMe 工具" 如果您正在使用 ontap-san 適用於透過 TCP ( NVMe / TCP )傳輸協定的非揮發性記憶體高速( NVMe )。
|
|
NetApp 建議使用 ONTAP 9.12 或更新版本來處理 NVMe / TCP 。 |
請參閱"設定 FC 擴大機、 FC-NVMe SAN 主機的方法"如需設定 FC 和 FC-NVMe SAN 主機的詳細資訊,。
"安裝 FC 工具"如果您使用 ontap-san sanType fcp ( SCSI over FC )。
-
要考慮的要點 * : * OpenShift 和 KubeVirt 環境支援 SCSI over FC 。* Docker 不支援 SCSI over FC 。* iSCSI 自我修復不適用於 FC 上的 SCSI 。
"準備配置SMB磁碟區" 如果您正在使用: ontap-nas 為 SMB 提供卷。
節點服務探索
Trident 會嘗試自動偵測節點是否可以執行 iSCSI 或 NFS 服務。
|
|
節點服務探索可識別探索到的服務、但無法保證服務已正確設定。相反地、沒有探索到的服務並不保證磁碟區掛載會失敗。 |
Trident 會為節點建立事件、以識別探索到的服務。若要檢閱這些事件、請執行:
kubectl get event -A --field-selector involvedObject.name=<Kubernetes node name>
Trident 會識別 Trident 節點 CR 上每個節點啟用的服務。若要檢視探索到的服務、請執行:
tridentctl get node -o wide -n <Trident namespace>
NFS磁碟區
使用作業系統的命令來安裝NFS工具。確保NFS服務在開機期間啟動。
sudo yum install -y nfs-utils
sudo apt-get install -y nfs-common
|
|
安裝NFS工具之後、請重新啟動工作節點、以避免將磁碟區附加至容器時發生故障。 |
iSCSI磁碟區
Trident 可以自動建立 iSCSI 工作階段、掃描 LUN 、探索多重路徑裝置、將其格式化、並將其裝載至 Pod 。
iSCSI自我修復功能
對於 ONTAP 系統、 Trident 每五分鐘執行一次 iSCSI 自我修復、以:
-
*識別*所需的iSCSI工作階段狀態和目前的iSCSI工作階段狀態。
-
*比較*所需狀態與目前狀態、以識別所需的維修。Trident 會決定維修優先順序、以及何時優先執行維修。
-
執行必要的修復、以將目前的iSCSI工作階段狀態恢復至所需的iSCSI工作階段狀態。
|
|
自我修復活動記錄位於個別 Dem隨 選裝置上的容器中 trident-main。若要檢視記錄、您必須在 Trident 安裝期間將其設 `debug`為「 true 」。
|
Trident iSCSI 自我修復功能有助於防止:
-
發生網路連線問題後、可能會發生過時或不正常的iSCSI工作階段。如果工作階段過時、 Trident 會在登出前等待七分鐘、以重新建立與入口網站的連線。
例如、如果在儲存控制器上旋轉CHAP機密、而網路失去連線、則舊的(stal_)CHAP機密可能會持續存在。自我修復可辨識此情況、並自動重新建立工作階段、以套用更新的CHAP機密。 -
遺失iSCSI工作階段
-
遺失LUN
-
升級 Trident 之前應考慮的要點 *
-
如果僅使用每個節點的 igroup (於 23.04+ 推出)、 iSCSI 自我修復將會為 SCSI 匯流排中的所有裝置啟動 SCSI 重新掃描。
-
如果僅使用後端範圍的 igroup (自 2004 年 23 日起已過時)、 iSCSI 自我修復將會針對 SCSI 匯流排中的確切 LUN ID 啟動 SCSI 重新掃描。
-
如果混合使用每個節點的 igroup 和後端範圍的 igroup 、 iSCSI 自我修復將會啟動 SCSI 重新掃描、以取得 SCSI 匯流排中的確切 LUN ID 。
安裝iSCSI工具
使用適用於您作業系統的命令來安裝iSCSI工具。
-
Kubernetes叢集中的每個節點都必須具有唯一的IQN。這是必要的先決條件。
-
若搭配使用RMCOS 4.5或更新版本、或其他與RHEL相容的Linux套裝作業系統
solidfire-san驅動程式和元素OS 12.5或更早版本、請確定CHAP驗證演算法已在中設定為MD5/etc/iscsi/iscsid.conf。元素12.7提供安全的FIPS相容CHAP演算法SHA1、SHA-256和SHA3-256。sudo sed -i 's/^\(node.session.auth.chap_algs\).*/\1 = MD5/' /etc/iscsi/iscsid.conf
-
當使用搭配 iSCSI PV 執行 RHEL/Red Hat Enterprise Linux CoreOS ( RHCOS )的工作節點時,請在 StorageClass 中指定
discardmountOption 以執行內嵌空間回收。請參閱 "Red Hat 說明文件"。 -
確保您已升級至最新版本
multipath-tools。
-
安裝下列系統套件:
sudo yum install -y lsscsi iscsi-initiator-utils device-mapper-multipath
-
檢查iscsite-initier-utils版本是否為6.6.0.874-2.el7或更新版本:
rpm -q iscsi-initiator-utils
-
將掃描設為手動:
sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
-
啟用多重路徑:
sudo mpathconf --enable --with_multipathd y --find_multipaths n
確保 `/etc/multipath.conf`包含 `find_multipaths no`在 `defaults`中。 -
確保運行的是"iscsid"和"multipathd":
sudo systemctl enable --now iscsid multipathd
-
啟用並啟動「iSCSI」:
sudo systemctl enable --now iscsi
-
安裝下列系統套件:
sudo apt-get install -y open-iscsi lsscsi sg3-utils multipath-tools scsitools
-
檢查開放式iSCSI版本是否為2.0.874-5ubuntu2.10或更新版本(適用於雙聲網路)或2.0.874-7.1ubuntu6.1或更新版本(適用於焦點):
dpkg -l open-iscsi
-
將掃描設為手動:
sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
-
啟用多重路徑:
sudo tee /etc/multipath.conf <<-EOF defaults { user_friendly_names yes find_multipaths no } EOF sudo systemctl enable --now multipath-tools.service sudo service multipath-tools restart確保 `/etc/multipath.conf`包含 `find_multipaths no`在 `defaults`中。 -
確保已啟用並執行「open-iscsi」和「多路徑工具」:
sudo systemctl status multipath-tools sudo systemctl enable --now open-iscsi.service sudo systemctl status open-iscsi
對於Ubuntu 18.04、您必須先使用「iscsiadmd」探索目標連接埠、然後再啟動「open-iscsi」、iSCSI精靈才能啟動。您也可以修改「iSCSI」服務、以自動啟動「iscsid」。
設定或停用 iSCSI 自我修復
您可以設定下列 Trident iSCSI 自我修復設定、以修復過時的工作階段:
-
*iSCSI 自我修復時間間隔 * :決定啟動 iSCSI 自我修復的頻率(預設值: 5 分鐘)。您可以設定較小的數字、或設定較大的數字、將其設定為較常執行。
|
|
將 iSCSI 自我修復時間間隔設為 0 會完全停止 iSCSI 自我修復。我們不建議停用 iSCSI 自我修復功能;只有在 iSCSI 自我修復功能未如預期運作或無法進行偵錯時、才應停用 iSCSI 自我修復功能。 |
-
*iSCSI 自我修復等待時間 * :決定 iSCSI 自我修復等待的時間、再登出不正常的工作階段並再次嘗試登入(預設值: 7 分鐘)。您可以將其設定為較大的數目、以便識別為不正常的工作階段必須等待較長時間才能登出、然後再嘗試重新登入、或是較小的數目來登出和較早登入。
若要設定或變更 iSCSI 自我修復設定、請通過 iscsiSelfHealingInterval 和 iscsiSelfHealingWaitTime 在 helm 安裝或 helm 更新期間的參數。
以下範例將 iSCSI 自我修復間隔設為 3 分鐘、而自我修復等候時間設為 6 分鐘:
helm install trident trident-operator-100.2506.0.tgz --set iscsiSelfHealingInterval=3m0s --set iscsiSelfHealingWaitTime=6m0s -n trident
若要設定或變更 iSCSI 自我修復設定、請通過 iscsi-self-healing-interval 和 iscsi-self-healing-wait-time 在 Tridentctl 安裝或更新期間的參數。
以下範例將 iSCSI 自我修復間隔設為 3 分鐘、而自我修復等候時間設為 6 分鐘:
tridentctl install --iscsi-self-healing-interval=3m0s --iscsi-self-healing-wait-time=6m0s -n trident
NVMe / TCP 磁碟區
使用適用於您作業系統的命令來安裝 NVMe 工具。
|
|
|
sudo yum install nvme-cli sudo yum install linux-modules-extra-$(uname -r) sudo modprobe nvme-tcp
sudo apt install nvme-cli sudo apt -y install linux-modules-extra-$(uname -r) sudo modprobe nvme-tcp
驗證安裝
安裝後、請使用命令確認 Kubernetes 叢集中的每個節點都有唯一的 NQN :
cat /etc/nvme/hostnqn
|
|
Trident 會修改此 `ctrl_device_tmo`值、確保 NVMe 在故障時不會放棄路徑。請勿變更此設定。 |
FC 磁碟區上的 SCSI
您現在可以搭配 Trident 使用光纖通道( FC )傳輸協定,在 ONTAP 系統上配置及管理儲存資源。
先決條件
設定 FC 所需的網路和節點設定。
網路設定
-
取得目標介面的 WWPN 。如需詳細資訊、請參閱 "網路介面顯示" 。
-
取得啟動器(主機)介面的 WWPN 。
請參閱對應的主機作業系統公用程式。
-
使用主機和目標的 WWPN 在 FC 交換器上設定分區。
如需詳細資訊,請參閱重新輸入交換器廠商文件。
如需詳細資訊,請參閱下列 ONTAP 文件:
安裝 FC 工具
使用作業系統的命令來安裝FC工具。
-
當使用搭配 FC PV 執行 RHEL/Red Hat Enterprise Linux CoreOS ( RHCOS )的工作節點時,請在 StorageClass 中指定
discardmountOption 以執行內嵌空間回收。請參閱 "Red Hat 說明文件"。
-
安裝下列系統套件:
sudo yum install -y lsscsi device-mapper-multipath
-
啟用多重路徑:
sudo mpathconf --enable --with_multipathd y --find_multipaths n
確保 `/etc/multipath.conf`包含 `find_multipaths no`在 `defaults`中。 -
確定 `multipathd`執行中:
sudo systemctl enable --now multipathd
-
安裝下列系統套件:
sudo apt-get install -y lsscsi sg3-utils multipath-tools scsitools
-
啟用多重路徑:
sudo tee /etc/multipath.conf <<-EOF defaults { user_friendly_names yes find_multipaths no } EOF sudo systemctl enable --now multipath-tools.service sudo service multipath-tools restart確保 `/etc/multipath.conf`包含 `find_multipaths no`在 `defaults`中。 -
確定 `multipath-tools`已啟用並正在執行:
sudo systemctl status multipath-tools
準備配置SMB磁碟區
您可以使用以下方式設定 SMB 卷 ontap-nas 司機。
|
|
您必須在 SVM 上同時設定 NFS 和 SMB/CIFS 通訊協定,才能為 ONTAP 內部部署叢集建立 ontap-nas-economy 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-sharenasType*必須設定為
smb.*如果為null、則預設為nfs。smb《生態樣式》
新磁碟區的安全樣式。必須設定為
ntfs或mixed適用於SMB磁碟區。ntfs或mixed適用於SMB磁碟區「unixPermissions」
新磁碟區的模式。SMB磁碟區*必須保留為空白。*
"