自訂Trident操作員安裝
Trident運算子可讓您使用屬性自訂Trident安裝。 `TridentOrchestrator`規格如果您想對安裝進行超出以下範圍的自訂: `TridentOrchestrator`如果論點允許,請考慮使用 `tridentctl`產生自訂 YAML 清單,並根據需要進行修改。
了解控制器 pod 和節點 pod
配置選項
|
|
spec.namespace`已在…中指定 `TridentOrchestrator`用於指定Trident安裝所在的命名空間。 Trident安裝後,此參數*無法更新*。嘗試這樣做會導致 `TridentOrchestrator`狀態變更為 `Failed。 Trident不打算跨命名空間遷移。
|
此表詳細列出了 `TridentOrchestrator`屬性。
| 範圍 | 描述 | 預設 | ||
|---|---|---|---|---|
|
用於安裝Trident 的命名空間 |
|
||
|
啟用Trident的調試功能 |
|
||
|
|
|
||
|
設定為 `true`支援在Windows工作節點上安裝。 |
|
||
|
設定為 `"Azure"`在 AKS 叢集上使用託管身分或雲端身分時。設定為 `"AWS"`在 EKS 叢集上使用雲端身分時。設定為 `"GCP"`在 GKE 叢集上使用雲端身分時。 |
|
||
|
在 AKS 叢集上使用雲端識別時,請設定為工作負載標識(「azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx」)。在 EKS 叢集上使用雲端身分時,設定為 AWS IAM 角色(「'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'」)。在 GKE 叢集上使用雲端身分時,請設定為雲端身分(「'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'」)。 |
|
||
|
透過 IPv6 安裝Trident |
錯誤的 |
||
|
Kubernetes 操作逾時。
|
|
||
|
不要自動向NetApp發送自動支援包 |
|
||
|
自動支援遙測的容器鏡像 |
|
||
|
用於發送自動支援遙測資料的代理位址/端口 |
|
||
|
用於卸載Trident 的標誌 |
|
||
|
Trident日誌記錄格式:[text,json] |
|
||
|
安裝Trident鏡像 |
|
||
|
內部登錄路徑,格式如下 |
|
||
|
主機上 kubelet 目錄的路徑 |
|
||
|
若要徹底移除Trident,需要刪除以下資源: |
|||
|
從內部鏡像倉庫拉取鏡像的秘訣 |
|||
|
設定Trident運算子的鏡像拉取策略。有效值為: |
|
||
|
Pod 的附加節點選擇器。遵循與以下相同的格式 |
無預設值;可選 |
||
|
涵蓋 Kubernetes 對 Pod 的容忍度。遵循與以下相同的格式: |
無預設值;可選 |
||
|
Pod 的附加節點選擇器。遵循與以下相同的格式 |
無預設值;可選 |
||
|
涵蓋 Kubernetes 對 Pod 的容忍度。遵循與以下相同的格式: |
無預設值;可選 |
||
|
使Trident能夠準備 Kubernetes 叢集的節點,以使用指定的資料儲存協定管理磁碟區。*現在, `iscsi`是唯一支援的值。 *
|
|||
|
控制器與 Kubernetes API 伺服器通訊時所使用的每秒查詢數 (QPS) 限制。Burst 值會根據 QPS 值自動設定。 |
|
||
|
支援並發Trident控制器操作以提高吞吐量。
|
錯誤的 |
|
|
有關格式化 pod 參數的更多信息,請參閱"將 Pod 指派給節點"。 |
強制分離的詳細訊息
強制分離功能可用 ontap-san, ontap-san-economy , ontap-nas , 和 `ontap-nas-economy`僅有的。在啟用強制分離之前,必須在 Kubernetes 叢集上啟用非正常節點關閉 (NGNS)。Kubernetes 1.28 以上版本預設啟用 NGNS。更多信息,請參閱"Kubernetes:節點非優雅關閉"。
|
|
使用時 `ontap-nas`或者 `ontap-nas-economy`驅動程序,您需要設置 `autoExportPolicy`後端配置中的參數 `true`以便Trident可以使用託管導出策略限制對應用了污點的 Kubernetes 節點的存取。 |
|
|
由於Trident依賴 Kubernetes NGNS,請勿移除 `out-of-service`將來自不健康節點的污點保留到所有無法容忍的工作負載重新調度為止。魯莽地應用或移除污點可能會危害後端資料保護。 |
當 Kubernetes 叢集管理員應用了 `node.kubernetes.io/out-of-service=nodeshutdown:NoExecute`節點受到污染 `enableForceDetach`設定為 `true`Trident將確定節點狀態並:
-
停止對掛載到該節點的磁碟區的後端 I/O 存取。
-
將Trident節點物件標記為
dirty(不適合新出版品)Trident控制器將拒絕新的發布捲請求,直到節點重新獲得資格(在被標記為已啟動之後)。 dirty`由Trident節點 pod 執行。任何使用已掛載 PVC 調度的工作負載(即使叢集節點運作狀況良好且已準備就緒)在Trident驗證節點之前都不會被接受。 `clean(適用於新出版品)。
當節點健康狀況恢復且污點被移除後, Trident將:
-
識別並清理節點上過期的已發布路徑。
-
如果節點位於 `cleanable`狀態(已移除服務中斷污點,節點處於) `Ready`如果狀態)且所有過期的、已發佈的路徑都已清理, Trident將重新接納該節點。 `clean`並允許將新發布的捲添加到節點。
範例配置
您可以使用下列屬性配置選項在定義時 `TridentOrchestrator`自訂您的安裝。
基本自訂配置
這個範例是在運行以下命令後創建的: `cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml`該命令代表一個基本的自訂安裝:
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullSecrets:
- thisisasecret
節點選擇器
此範例使用節點選擇器安裝Trident 。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
controllerPluginNodeSelector:
nodetype: master
nodePluginNodeSelector:
storage: netapp
Windows 工作節點
這個範例是在運行以下命令後創建的: `cat deploy/crds/tridentorchestrator_cr.yaml`該指令在 Windows 工作節點上安裝Trident 。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
windows: true
AKS 叢集上的託管身份
本範例安裝Trident以在 AKS 叢集上啟用託管身分。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
cloudProvider: "Azure"
AKS 叢集上的雲端身份
本範例在 AKS 叢集上安裝Trident以用於雲端身分。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
cloudProvider: "Azure"
cloudIdentity: 'azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx'
EKS 叢集上的雲端身份
本範例在 AKS 叢集上安裝Trident以用於雲端身分。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
cloudProvider: "AWS"
cloudIdentity: "'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'"
GKE 的雲端身份
本範例在 GKE 叢集上安裝Trident以用於雲端身分。
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-gcp-gcnv
spec:
version: 1
storageDriverName: google-cloud-netapp-volumes
projectNumber: '012345678901'
network: gcnv-network
location: us-west2
serviceLevel: Premium
storagePool: pool-premium1