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

控制器擴充性

貢獻者 joan-ing

Trident 透過提升多個儲存驅動程式之間的並發性,實現了控制器可擴充性。客戶可以了解哪些 Trident 驅動程式在正式發佈時支援控制器可擴充性,以及哪些驅動程式在 Trident 26.02 中以技術預覽版的形式提供。這有助於客戶做出明智的部署決策,並為可擴充的 Kubernetes 環境進行適當的風險管理。

關鍵概念和定義

控制器擴充性

控制器可擴展性是指 Trident 控制器能夠並行處理多個儲存操作,而不是將它們串行化並置於單一鎖定之後。這些操作包括磁碟區的建立、刪除、調整大小、快照的建立和刪除、磁碟區的發布和取消發布以及後端管理。

啟用控制器可擴充性後,對不同磁碟區和後端執行的操作將同時進行。這可以提高吞吐量,並縮短並發 PersistentVolumeClaim 和 VolumeSnapshot 操作數量較多環境下的端對端操作時間。

控制器擴充性支援

Trident 支援不同成熟度等級的控制器可擴充性,視儲存驅動程式而定。

正式發行

以下驅動程式在 Trident 26.02 正式版中支援控制器擴充性:

  • 「ONTAP-SAN」

  • 「ONTAP-NAS」

  • google-cloud-netapp-volumes

註
`google-cloud-netapp-volumes` 和 `google-cloud-netapp-volumes-san` 驅動程式不同。僅支援 `google-cloud-netapp-volumes`。請勿在後端組態或範例中使用 `google-cloud-netapp-volumes-san`。

啟用控制器擴充性

控制器的可擴充性由 enableConcurrency 配置選項控制。必須在 Trident 安裝期間或透過更新現有部署明確啟用此選項。

Trident 操作程式部署

若要使用 Trident operator 啟用控制器可擴展性,請在 TridentOrchestrator 自訂資源中將 enableConcurrency 設定為 true

新安裝

建立或編輯 TridentOrchestrator CR,並將 enableConcurrency 設定為 true

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  namespace: trident
  enableConcurrency: true

套用 CR :

kubectl apply -f tridentorchestrator_cr.yaml

現有安裝

對現有 TridentOrchestrator CR 進行修補,以啟用控制器可擴充性:

kubectl patch torc trident --type=merge -p '{"spec":{"enableConcurrency":true}}'

確認設定已套用:

kubectl get torc trident -o jsonpath='{.status.currentInstallationParams.enableConcurrency}'

Helm 部署

若要使用 Helm 啟用控制器可擴充性,請將 enableConcurrency 值設為 true

新安裝

helm install trident netapp-trident/trident-operator --namespace trident --create-namespace --set enableConcurrency=true

現有安裝

helm upgrade trident netapp-trident/trident-operator --namespace trident --set enableConcurrency=true

或者,在自訂的 values.yaml 檔案中,將 enableConcurrency 設定為 true

# values.yaml
enableConcurrency: true

然後使用 values 檔案進行安裝或升級:

helm install trident netapp-trident/trident-operator --namespace trident --create-namespace -f values.yaml

Tridentctl 部署

若要啟用控制器可擴充性與 tridentctl,請在安裝期間傳遞 `--enable-concurrency`標誌。

新安裝

tridentctl install -n trident --enable-concurrency

現有安裝

若要在現有的 `tridentctl`型部署上啟用控制器擴充性,請使用旗標解除安裝並重新安裝:

tridentctl uninstall -n trident
tridentctl install -n trident --enable-concurrency

確認控制器可擴充性已啟用

啟用控制器可擴充性後,請檢查控制器 pod 日誌,以驗證 Trident 控制器是否已啟用並發功能:

kubectl logs -n trident deploy/trident-controller | grep -i concurrency

您應該會看到一條日誌條目,表示並發已啟用。

技術預覽

以下驅動程式在 Trident 26.02 中以技術預覽版的形式支援控制器擴充性:

  • nas-eco

  • san-eco

對於這些驅動程式:

  • 控制器並發功能可用於評估和測試

  • 行為可能會在未來版本中變更

  • 不建議在正式作業環境中使用

並行行為

啟用控制器可擴充性時:

  • Trident 以精細的每個資源鎖定取代單一全域鎖定

  • 修改相同資源的作業會序列化,以維持資料一致性

  • 僅從資源讀取資料的操作可以與對該資源的其他讀取操作並發進行

  • Trident 將每個管理 LIF 的同時 ONTAP API 請求數限制為 20 個,以防止後端儲存系統過載。

  • 如果多個後端共用同一個管理 LIF、則它們共用這 20 次請求的限制

已知限制和注意事項

以下考量事項適用於控制器擴充性:

  • 並行處理由 Trident 控制器在內部管理

  • 此版本中沒有使用者可設定的並行限制

  • 整體處理量取決於:

    • 正在使用的儲存驅動程式

    • 後端回應能力

    • Kubernetes API 伺服器效能

  • 高並發性會增加後端儲存系統的負載

注意事項和限制

Trident 26.02 有以下限制:

  • 控制器的可擴充性行為在不同的驅動程式中並不完全相同

  • 技術預覽版驅動程式可能出現:

    • 高負載下效能不穩定

    • 版本之間的行為變更

  • 由於並行執行,偵錯並發操作可能更加複雜

  • 指標和記錄可能會顯示交錯的作業輸出

建議

  • 對於需要高可擴展性的正式作業環境,請使用通用版本 (GA) 驅動程式

  • 在非正式作業環境中評估技術預覽驅動程式

  • 在大規模運作時監控後端和控制器效能

  • 避免在自動化指令碼中假設作業順序