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

準備工作節點

貢獻者

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

選擇適當的工具

如果您使用的是驅動程式組合、則應該安裝所有必要的驅動程式工具。最新版本的 RedHat CoreOS 預設會安裝這些工具。

NFS工具

"安裝 NFS 工具" 如果您使用的是: ontap-nasontap-nas-economyontap-nas-flexgroupazure-netapp-filesgcp-cvs

iSCSI工具

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

NVMe 工具

"安裝 NVMe 工具" 如果您正在使用 ontap-san 適用於透過 TCP ( NVMe / TCP )傳輸協定的非揮發性記憶體高速( NVMe )。

註 我們建議使用適用於 NVMe / TCP 的 ONTAP 9.12 或更新版本。
SCSI over FC 工具
  • SCSI over Fibre Channel ( FC )是 Trident 24.10 版本的技術預覽功能。 *

"安裝iSCSI工具"如果您使用 ontap-san sanType fcp ( SCSI over FC )。

如需詳細資訊、請參閱 "設定 FC 擴大機、 FC-NVMe SAN 主機的方法"

節點服務探索

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工作階段狀態。

註 自我修復活動記錄位於個別 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
  • 使用執行RHEL/RedHat CoreOS搭配iSCSI PV的工作節點時、請指定 discard StorageClass中的掛載選項、以執行即時空間回收。請參閱 "RedHat文件"

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

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

    rpm -q iscsi-initiator-utils
  3. 啟用多重路徑:

    sudo mpathconf --enable --with_multipathd y --find_multipaths n
    註 確保在"default"(錯誤)下"etc/multipath.conf"包含"fappe_multipaths no"。
  4. 確保運行的是"iscsid"和"multipathd":

    sudo systemctl enable --now iscsid multipathd
  5. 啟用並啟動「iSCSI」:

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

    sudo apt-get install -y open-iscsi lsscsi sg3-utils multipath-tools scsitools
  2. 檢查開放式iSCSI版本是否為2.0.874-5ubuntu2.10或更新版本(適用於雙聲網路)或2.0.874-7.1ubuntu6.1或更新版本(適用於焦點):

    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
    註 確保在"default"(錯誤)下"etc/multipath.conf"包含"fappe_multipaths no"。
  5. 確保已啟用並執行「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 自我修復設定、請通過 iscsiSelfHealingIntervaliscsiSelfHealingWaitTime 在 helm 安裝或 helm 更新期間的參數。

以下範例將 iSCSI 自我修復間隔設為 3 分鐘、而自我修復等候時間設為 6 分鐘:

helm install trident trident-operator-100.2410.0.tgz --set iscsiSelfHealingInterval=3m0s --set iscsiSelfHealingWaitTime=6m0s -n trident
試用

若要設定或變更 iSCSI 自我修復設定、請通過 iscsi-self-healing-intervaliscsi-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 工具。

註
  • 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 在故障時不會放棄路徑。請勿變更此設定。