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

自訂Trident操作員安裝

貢獻者

Trident 運算子可讓您使用規格中的屬性來自訂 Astra Trident 安裝 TridentOrchestrator。如果您想自訂超出引數允許範圍的安裝 TridentOrchestrator、請考慮使用 `tridentctl`產生自訂的 YAML 資訊清單、以視需要進行修改。

瞭解控制器 Pod 和節點 Pod

Astra Trident 會以單一控制器 Pod 的形式執行、並在叢集中的每個工作節點上提供節點 Pod 。節點 Pod 必須在任何想要裝載 Astra Trident Volume 的主機上執行。

Kubernetes "節點選取器""容忍和污染"用於限制 Pod 在特定或偏好的節點上執行。使用「 ControllerPlugin' 」和 NodePlugin、您可以指定限制和置換。

  • 控制器外掛程式可處理磁碟區資源配置與管理、例如快照和調整大小。

  • 節點外掛程式會處理將儲存設備附加至節點的問題。

組態選項

警告 spec.namespace`在中指定 `TridentOrchestrator`以表示安裝 Astra Trident 的命名空間。此參數*無法在安裝Astra Trident之後更新*。嘗試這樣做會導致 `TridentOrchestrator`狀態變更為 `Failed。Astra Trident不打算跨命名空間移轉。

此表詳細說明 `TridentOrchestrator`屬性。

參數 說明 預設

namespace

用於安裝Astra Trident的命名空間

"default"

debug

啟用Astra Trident的偵錯功能

false

enableForceDetach

ontap-san `ontap-san-economy`僅限。與 Kubernetes Non-Graceful Node Shutdown ( NGNS )一起運作、讓叢集管理員能夠在節點發生問題時、將已掛載磁碟區的工作負載安全移轉至新節點。

false

windows

設定為 `true`啟用 Windows 工作者節點上的安裝。

false

cloudProvider

在 AKS 叢集上使用託管身分識別或雲端身分識別時、請設定為 "Azure"。在 EKS 叢集上使用雲端身分識別時、請設定為「 AWS 」。

""

cloudIdentity

在 AKS 叢集上使用雲端身分識別時、請設定為工作負載身分識別(「 azure.Workload .idental/client-id : XXXXXXXX-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxx 」)。在 EKS 叢集上使用雲端身分識別時、請設定為 AWS IAM 角色(「 eks.amazonaws.com/role-arn: arn:AWS:iam::123456 :角色 / 身分識別角色」)。

""

IPv6

透過IPv6安裝Astra Trident

k8sTimeout

Kubernetes作業逾時

30sec

silenceAutosupport

請勿AutoSupport 自動將此套裝組合傳送至NetApp

false

autosupportImage

遙測的容器影像AutoSupport

"netapp/trident-autosupport:24.06"

autosupportProxy

代理伺服器的位址/連接埠、用於傳送AutoSupport 「遙測」功能

"http://proxy.example.com:8888"

uninstall

用來解除安裝Astra Trident的旗標

false

logFormat

要使用的Astra Trident記錄格式[text、json]

"text"

tridentImage

要安裝的Astra Trident映像

"netapp/trident:24.06"

imageRegistry

格式的內部登錄路徑
<registry FQDN>[:port][/subpath]

"k8s.gcr.io/sig-storage"( Kubernetes 1.19+ )或 "quay.io/k8scsi"

kubeletDir

主機上的kubelet目錄路徑

"/var/lib/kubelet"

wipeout

要刪除以執行完整移除Astra Trident的資源清單

imagePullSecrets

從內部登錄擷取映像的機密

imagePullPolicy

設定Trident運算子的影像提取原則。有效值為:
`Always`一律拉動影像。
`IfNotPresent`僅在節點上尚未存在映像時才提取映像。
`Never`不拉動影像。

IfNotPresent

controllerPluginNodeSelector

用於 Pod 的其他節點選取器。格式與相同 pod.spec.nodeSelector

無預設值;選用

controllerPluginTolerations

覆寫 Pod 的 Kubernetes 公差。格式與相同 pod.spec.Tolerations

無預設值;選用

nodePluginNodeSelector

用於 Pod 的其他節點選取器。格式與相同 pod.spec.nodeSelector

無預設值;選用

nodePluginTolerations

覆寫 Pod 的 Kubernetes 公差。格式與相同 pod.spec.Tolerations

無預設值;選用

註 如需格式化 Pod 參數的詳細資訊"將Pod指派給節點"、請參閱。

強制分離的詳細資料

「強制分離」僅適用於 ontap-san`和 `ontap-san-economy。啟用強制分離之前、必須先在 Kubernetes 叢集上啟用非正常節點關機( NGNS )。如需詳細資訊、請 "Kubernetes :非正常節點關機"參閱。

警告 由於 Astra Trident 仰賴 Kubernetes NGNS 、因此在重新排程所有不可容忍的工作負載之前、請勿移除 `out-of-service`不良節點的污點。如果不考慮套用或移除污染、可能會危及後端資料保護。

當 Kubernetes 叢集管理員將 Tintt 套用 `node.kubernetes.io/out-of-service=nodeshutdown:NoExecute`至節點並 `enableForceDetach`設定為 `true`時、 Astra Trident 會判斷節點狀態、並:

  1. 停止掛載到該節點之磁碟區的後端 I/O 存取。

  2. 將 Astra Trident 節點物件標示為 dirty(不適用於新出版物)。

    註 Trident 控制器將拒絕新的發佈 Volume 要求、直到 Trident 節點 Pod 重新驗證節點(標記為之後)為止 dirty。在 Astra Trident 能夠驗證節點(新出版物可安全使用)之前、任何排程使用已掛載 PVC 的工作負載(即使在叢集節點健全且準備就緒之後)都不會被接受 clean

當節點健全狀況恢復且刪除污染物時、 Astra Trident 將:

  1. 識別並清除節點上過時的已發佈路徑。

  2. 如果節點處於某個 `cleanable`狀態(已移除服務外污染、且節點處於 `Ready`狀態)、且所有過時的已發佈路徑均為乾淨、 Astra 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
節點選取器

此範例會安裝 Astra Trident 搭配節點選取器。

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  controllerPluginNodeSelector:
    nodetype: master
  nodePluginNodeSelector:
    storage: netapp
Windows 工作者節點

此範例會在 Windows 工作者節點上安裝 Astra Trident 。

cat deploy/crds/tridentorchestrator_cr.yaml
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  windows: true
在 AKS 叢集上的託管身分識別

此範例安裝 Astra Trident 、可在 Aaks 叢集上啟用受管理的身分識別。

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "Azure"
AKS 叢集上的雲端身分識別

本範例安裝 Astra Trident 、以搭配 Astra 叢集上的雲端身分識別使用。

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 叢集上的雲端身分識別

本範例安裝 Astra Trident 、以搭配 Astra 叢集上的雲端身分識別使用。

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/astratrident-role'"