準備工作節點
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`非揮發性記憶體高速介面(NVMe)over TCP(NVMe/TCP)協定。
|
|
NetApp 建議使用 ONTAP 9.12 或更新版本來使用 NVMe/TCP 。 |
如需有關設定 FC 和 FC-NVMe SAN 主機的詳細資訊,請參閱 "配置 FC 和 FC-NVMe SAN 主機的方法"。
"安裝 FC 工具" 如果您使用 ontap-san 搭配 sanType fcp(透過 FC 連線的 SCSI)。
注意事項:* SCSI over FC 在 OpenShift 和 KubeVirt 環境中受到支援。* SCSI over FC 不支援 Docker。* iSCSI 自癒功能不適用於 SCSI over FC。
"準備配置 SMB Volume" 如果您正在使用: ontap-nas 來配置 SMB Volume 。
節點服務探索
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 工作階段狀態。
|
|
自癒活動的日誌位於對應 Daemonset pod 上的 `trident-main`容器中。若要查看日誌,您必須在 Trident 安裝過程中將 `debug`設為「true」。 |
Trident iSCSI 自我修復功能可協助防止:
-
網路連線問題後可能會出現過期或不健康的 iSCSI 工作階段。如果工作階段過期,Trident 會等待七分鐘,然後登出並重新與入口網站建立連線。
例如,如果儲存控制器上的 CHAP 金鑰進行了輪換,而網路連線中斷,則舊的(過時的)CHAP 金鑰可能會繼續存在。自癒機制可以識別這種情況,並自動重新建立工作階段以套用更新後的 CHAP 金鑰。 -
缺少 iSCSI 工作階段
-
缺少 LUN
升級 Trident 前需考量的要點
-
如果僅使用每個節點的 igroup(在 23.04+ 中引入)、則 iSCSI 自癒功能將啟動 SCSI 匯流排上所有裝置的 SCSI 重新掃描。
-
如果僅使用後端範圍的 igroup(自 23.04 版本起已棄用)、則 iSCSI 自癒功能將啟動 SCSI 重新掃描、以尋找 SCSI 匯流排中的確切 LUN ID。
-
如果同時使用每節點 igroup 和後端範圍 igroup,iSCSI 自我修復將針對 SCSI 匯流排中的確切 LUN ID 啟動 SCSI 重新掃描。
安裝 iSCSI 工具
使用適用於您作業系統的命令安裝 iSCSI 工具。
-
Kubernetes 叢集中的每個節點都必須有一個唯一的 IQN。這是必要的前提條件。
-
如果使用 RHCOS 4.5 或更高版本、或其他與 RHEL 相容的 Linux 發行版本,並搭配 `solidfire-san`驅動程式和 Element OS 12.5 或更早版本,請確保在 `/etc/iscsi/iscsid.conf`中將 CHAP 驗證演算法設定為 MD5。Element 12.7 提供了符合 FIPS 標準的安全 CHAP 演算法 SHA1、SHA-256 和 SHA3-256。
sudo sed -i 's/^\(node.session.auth.chap_algs\).*/\1 = MD5/' /etc/iscsi/iscsid.conf
-
當使用執行 RHEL/Red Hat Enterprise Linux CoreOS(RHCOS)的工作節點並搭配 iSCSI PV 時,請在StorageClass 中指定
discardmountOption 以執行即時空間回收。請參閱 "Red Hat 說明文件"。 -
請確保您已升級至最新版本的
multipath-tools。
-
安裝下列系統套件:
sudo yum install -y lsscsi iscsi-initiator-utils device-mapper-multipath
-
檢查 iscsi-initiator-utils 版本是否為 6.2.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
-
請檢查 open-iscsi 版本是否為 2.0.874-5ubuntu2.10 或更高版本(適用於 bionic)或 2.0.874-7.1ubuntu6.1 或更高版本(適用於 focal):
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和multipath-tools已啟用並正在運行:sudo systemctl status multipath-tools sudo systemctl enable --now open-iscsi.service sudo systemctl status open-iscsi
對於 Ubuntu 18.04,您必須使用 iscsiadm探索目標連接埠,然後再啟動open-iscsi,iSCSI 精靈才能啟動。或者,您也可以修改iscsi服務,使其自動啟動iscsid。
設定或停用 iSCSI 自我修復
您可以設定以下 Trident iSCSI 自我修復設定來修復過時的工作階段:
-
iSCSI 自癒間隔:決定 iSCSI 自癒功能的呼叫頻率(預設值:5 分鐘)。您可以設定較小的數值來提高呼叫頻率,或設定較大的數值來降低呼叫頻率。
|
|
將 iSCSI 自癒間隔設為 0 將完全停止 iSCSI 自癒功能。我們不建議停用 iSCSI 自癒功能;僅當 iSCSI 自癒功能無法按預期工作或出於偵錯目的時才應停用它。 |
-
iSCSI 自癒等待時間:決定 iSCSI 自癒在登出不健康的工作階段並嘗試重新登入之前等待的時間(預設值:7 分鐘)。您可以將其設定為較大的數字,以便識別為不健康的工作階段必須等待較長時間才能登出,然後嘗試重新登入;或設定為較小的數字,以便更早登出並重新登入。
若要配置或變更 iSCSI 自癒設置,請在 helm 安裝或 helm 更新期間傳遞 `iscsiSelfHealingInterval`和 `iscsiSelfHealingWaitTime`參數。
以下範例將 iSCSI 自我修復間隔設定為 3 分鐘,自我修復等待時間設定為 6 分鐘:
helm install trident trident-operator-100.2506.0.tgz --set iscsiSelfHealingInterval=3m0s --set iscsiSelfHealingWaitTime=6m0s -n trident
若要配置或變更 iSCSI 自癒設置,請在 tridentctl 安裝或更新期間傳遞 `iscsi-self-healing-interval`和 `iscsi-self-healing-wait-time`參數。
以下範例將 iSCSI 自我修復間隔設定為 3 分鐘,自我修復等待時間設定為 6 分鐘:
tridentctl install --iscsi-self-healing-interval=3m0s --iscsi-self-healing-wait-time=6m0s -n trident
NVMe/TCP Volume
使用適用於您作業系統的命令安裝 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 在路徑中斷時不會放棄連線。請勿更改此設定。
|
SCSI over FC 磁碟區
現在您可以使用光纖通道(FC)協定和 Trident 在 ONTAP 系統上配置和管理儲存資源。
先決條件
配置 FC 所需的網路和節點設定。
網路設定
-
取得目標介面的 WWPN。如需詳細資訊,請參閱 "network interface show"。
-
取得啟動器(主機)上介面的 WWPN。
請參閱對應的主機作業系統公用程式。
-
使用主機和目標的 WWPN 在 FC 交換器上設定分區。
如需相關資訊,請參閱各交換器廠商文件。
如需詳細資訊,請參閱下列 ONTAP 文件:
安裝 FC 工具
使用適用於您作業系統的命令安裝 FC 工具。
-
當使用執行 RHEL/Red Hat Enterprise Linux CoreOS(RHCOS)的工作節點並搭配 FC PVs 時,請在
discardStorageClass 中指定 mountOption 以執行即時空間回收。請參閱 "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 Volume
您可以使用 ontap-nas 驅動程式配置 SMB 磁碟區。
|
|
您必須在 SVM 上同時設定 NFS 和 SMB/CIFS 通訊協定,才能為 ONTAP 內部部署叢集建立 ontap-nas-economy SMB Volume。若未設定其中任一通訊協定,將導致 SMB Volume 建立失敗。
|
|
|
autoExportPolicy 不支援 SMB 磁碟區。
|
在配置 SMB 磁碟區之前、您必須具備以下條件。
-
Kubernetes 叢集包含一個 Linux 控制器節點和至少一個執行 Windows Server 2022 的 Windows 工作節點。Trident 僅支援掛載到在 Windows 節點上執行的 pod 的 SMB 磁碟區。
-
至少需要一個包含您的 Active Directory 憑證的 Trident 金鑰。要產生金鑰
smbcreds:kubectl create secret generic smbcreds --from-literal username=user --from-literal password='password'
-
CSI Proxy 設定為 Windows 服務。若要設定
csi-proxy,請參閱"GitHub:CSI Proxy"或"GitHub:適用於 Windows 的 CSI Proxy"以瞭解在 Windows 上執行的 Kubernetes 節點。
-
對於內部部署 ONTAP、您可以選擇性地建立 SMB 共用區、或 Trident 可以為您建立一個。
Amazon FSx for ONTAP 需要 SMB 共用。 您可以透過兩種方式建立 SMB 管理共用:使用 "Microsoft Management Console" 共用資料夾嵌入式管理單元或使用 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 磁碟區。有關所有 FSx for ONTAP 後端設定選項,請參閱 "FSx for ONTAP 設定選項和範例"。
參數 說明 範例 smbShare您可以指定以下選項之一:使用 Microsoft Management Console 或 ONTAP CLI 建立的 SMB 共用名稱;允許 Trident 建立 SMB 共用的名稱;或者您可以將此參數留空以封鎖對磁碟區的公共共用存取。對於內部部署 ONTAP,此參數為選用項目。對於 Amazon FSx for ONTAP 後端,此參數為必要項目且不能為空白。
smb-sharenasType* 必須設為
smb。*如果為 null ,則預設為nfs。smbsecurityStyle新磁碟區的安全樣式。對於 SMB 磁碟區,必須設定為
ntfs`或 `mixed。ntfs或mixed適用於 SMB 磁碟區unixPermissions新磁碟區的模式。SMB 磁碟區必須保留空白。
""