Skip to main content
此產品有較新版本可以使用。
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

準備工作節點

Kubernetes 叢集中的所有工作節點都必須能夠掛載您為 Pod 配置的磁碟區。若要準備工作節點,您必須根據所選驅動程式安裝 NFS、iSCSI、NVMe/TCP 或 FC 工具。

選擇合適的工具

如果您使用多種驅動程式,則應安裝所有驅動程式所需的工具。最新版本的 Red Hat Enterprise Linux CoreOS(RHCOS)預設已安裝這些工具。

NFS 工具

"安裝 NFS 工具"如果您正在使用: ontap-nasontap-nas-economyontap-nas-flexgroup`或 `azure-netapp-files

iSCSI 工具

"安裝 iSCSI 工具" 如果您正在使用: ontap-sanontap-san-economysolidfire-san

NVMe 工具

"安裝 NVMe 工具" 如果您使用 `ontap-san`非揮發性記憶體高速介面(NVMe)over TCP(NVMe/TCP)協定。

註 NetApp 建議使用 ONTAP 9.12 或更新版本來使用 NVMe/TCP 。
透過 FC 進行 SCSI 的工具

如需有關設定 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 工具

"準備配置 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 服務在開機時啟動。

RHEL 8+
sudo yum install -y nfs-utils
Ubuntu
sudo apt-get install -y nfs-common
警告 安裝 NFS 工具後重新啟動工作節點,以防止將磁碟區附加到容器時發生故障。

iSCSI 磁碟區

Trident 可以自動建立 iSCSI 工作階段、掃描 LUN 、探索多重路徑裝置、格式化裝置並將其掛載到 Pod 。

iSCSI 自癒能力

對於 ONTAP 系統、 Trident 每五分鐘執行一次 iSCSI 自我修復、以:

  1. *識別*所需的 iSCSI 工作階段狀態和目前的 iSCSI 工作階段狀態。

  2. *比較*所需狀態與目前狀態,以識別所需的修復。Trident 會決定修復優先順序以及何時優先進行修復。

  3. 執行必要的修復,使目前的 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 中指定 discard mountOption 以執行即時空間回收。請參閱 "Red Hat 說明文件"

  • 請確保您已升級至最新版本的 multipath-tools

RHEL 8+
  1. 安裝下列系統套件:

    sudo yum install -y lsscsi iscsi-initiator-utils device-mapper-multipath
  2. 檢查 iscsi-initiator-utils 版本是否為 6.2.0.874-2.el7 或更新版本:

    rpm -q iscsi-initiator-utils
  3. 將掃描方式設定為手動:

    sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
  4. 啟用多重路徑:

    sudo mpathconf --enable --with_multipathd y --find_multipaths n
    註 請確保 `/etc/multipath.conf`包含 `find_multipaths no`在 `defaults`之下。
  5. 確保 `iscsid`和 `multipathd`正在運行:

    sudo systemctl enable --now iscsid multipathd
  6. 啟用並啟動 iscsi

    sudo systemctl enable --now iscsi
Ubuntu
  1. 安裝下列系統套件:

    sudo apt-get install -y open-iscsi lsscsi sg3-utils multipath-tools scsitools
  2. 請檢查 open-iscsi 版本是否為 2.0.874-5ubuntu2.10 或更高版本(適用於 bionic)或 2.0.874-7.1ubuntu6.1 或更高版本(適用於 focal):

    dpkg -l open-iscsi
  3. 將掃描方式設定為手動:

    sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
  4. 啟用多重路徑:

    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`之下。
  5. 確保 open-iscsimultipath-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 分鐘)。您可以將其設定為較大的數字,以便識別為不健康的工作階段必須等待較長時間才能登出,然後嘗試重新登入;或設定為較小的數字,以便更早登出並重新登入。

Helm

若要配置或變更 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
tridentctl

若要配置或變更 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 工具。

註
  • NVMe 需要 RHEL 9 或更新版本。

  • 如果您的 Kubernetes 節點的核心版本太舊,或者您的核心版本沒有 NVMe 套件,則您可能需要將節點的核心版本更新為包含 NVMe 套件的版本。

RHEL 9
sudo yum install nvme-cli
sudo yum install linux-modules-extra-$(uname -r)
sudo modprobe nvme-tcp
Ubuntu
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 所需的網路和節點設定。

網路設定

  1. 取得目標介面的 WWPN。如需詳細資訊,請參閱 "network interface show"

  2. 取得啟動器(主機)上介面的 WWPN。

    請參閱對應的主機作業系統公用程式。

  3. 使用主機和目標的 WWPN 在 FC 交換器上設定分區。

    如需相關資訊,請參閱各交換器廠商文件。

    如需詳細資訊,請參閱下列 ONTAP 文件:

安裝 FC 工具

使用適用於您作業系統的命令安裝 FC 工具。

  • 當使用執行 RHEL/Red Hat Enterprise Linux CoreOS(RHCOS)的工作節點並搭配 FC PVs 時,請在 discard StorageClass 中指定 mountOption 以執行即時空間回收。請參閱 "Red Hat 說明文件"

RHEL 8+
  1. 安裝下列系統套件:

    sudo yum install -y lsscsi device-mapper-multipath
  2. 啟用多重路徑:

    sudo mpathconf --enable --with_multipathd y --find_multipaths n
    註 請確保 `/etc/multipath.conf`包含 `find_multipaths no`在 `defaults`之下。
  3. 確保 multipathd 正在執行:

    sudo systemctl enable --now multipathd
Ubuntu
  1. 安裝下列系統套件:

    sudo apt-get install -y lsscsi sg3-utils multipath-tools scsitools
  2. 啟用多重路徑:

    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`之下。
  3. 確保 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 節點。

步驟
  1. 對於內部部署 ONTAP、您可以選擇性地建立 SMB 共用區、或 Trident 可以為您建立一個。

    註 Amazon FSx for ONTAP 需要 SMB 共用。

    您可以透過兩種方式建立 SMB 管理共用:使用 "Microsoft Management Console" 共用資料夾嵌入式管理單元或使用 ONTAP CLI。若要使用 ONTAP CLI 建立 SMB 共用:

    1. 如有必要、請建立共用區的目錄路徑結構。

      此 `vserver cifs share create`指令會檢查在建立共用時透過 -path 選項指定的路徑。如果指定的路徑不存在,則命令執行失敗。

    2. 建立與指定 SVM 相關聯的 SMB 共用:

      vserver cifs share create -vserver vserver_name -share-name share_name -path path [-share-properties share_properties,...] [other_attributes] [-comment text]
    3. 確認共用已建立:

      vserver cifs share show -share-name share_name
      註 詳情請參閱 "建立 SMB 共用區"
  2. 建立後端時,必須配置以下內容以指定 SMB 磁碟區。有關所有 FSx for ONTAP 後端設定選項,請參閱 "FSx for ONTAP 設定選項和範例"

    參數 說明 範例

    smbShare

    您可以指定以下選項之一:使用 Microsoft Management Console 或 ONTAP CLI 建立的 SMB 共用名稱;允許 Trident 建立 SMB 共用的名稱;或者您可以將此參數留空以封鎖對磁碟區的公共共用存取。對於內部部署 ONTAP,此參數為選用項目。對於 Amazon FSx for ONTAP 後端,此參數為必要項目且不能為空白。

    smb-share

    nasType

    * 必須設為 smb。*如果為 null ,則預設為 nfs

    smb

    securityStyle

    新磁碟區的安全樣式。對於 SMB 磁碟區,必須設定為 ntfs`或 `mixed

    ntfsmixed 適用於 SMB 磁碟區

    unixPermissions

    新磁碟區的模式。SMB 磁碟區必須保留空白。

    ""