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

自訂Trident操作員安裝

貢獻者

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

瞭解控制器 Pod 和節點 Pod

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

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

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

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

組態選項

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

本表詳細說明 TridentOrchestrator 屬性。

參數 說明 預設

namespace

安裝 Trident 的命名空間

"default"

「Debug」

啟用 Trident 的偵錯功能

「假」

enableForceDetach

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

「假」

windows

設定為 true 可在Windows工作節點上安裝。

「假」

cloudProvider

設定為 "Azure" 在 AKS 叢集上使用託管身分識別或雲端身分識別時。在 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 :角色 Trident 角色」)。

""

IPv6

透過 IPv6 安裝 Trident

k8sTimeout

Kubernetes作業逾時

30sec

silenceAutosupport

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

「假」

「autosupportImage」

遙測的容器影像AutoSupport

"netapp/trident-autosupport:24.10"

「autosupportProxy」

用於傳送 AutoSupport 的 Proxy 位址 / 連接埠
遙測

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

解除安裝

用於解除安裝 Trident 的旗標

「假」

logFormat

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

"text"

「TridentImage」

要安裝的 Trident 映像

"netapp/trident:24.10"

「影像登錄」

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

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

《kubeletDir

主機上的kubelet目錄路徑

"/var/lib/kubelet"

wipeout

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

「imagePullSecrets」

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

imagePullPolicy

設定Trident運算子的影像提取原則。有效值包括:
Always 永遠拉出映像。
IfNotPresent 僅當節點上尚未存在映像時才提取映像。
Never 永遠不要拉動映像。

IfNotPresent

「controllerPluginNodeSelector」

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

無預設值;選用

「控制器插件」

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

無預設值;選用

「nodePluginNodeSelector」

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

無預設值;選用

「nodePluginBolerations」

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

無預設值;選用

nodePrep

可讓 Trident 準備 Kubernetes 叢集的節點、以使用指定的資料儲存傳輸協定來管理磁碟區。* 目前 `iscsi`是唯一支援的值。 *

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

強制分離的詳細資料

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

註 使用驅動程式時 ontap-nas-economy、您需要將後端組態中的參數設定 autoExportPolicy`為 `true、以便 Trident 可以使用受管理的匯出原則套用的污染來限制從 Kubernetes 節點的存取。
警告 由於 Trident 仰賴 Kubernetes NGNS 、因此在重新排程所有不可容忍的工作負載之前、請勿移除 `out-of-service`不良節點的污點。如果不考慮套用或移除污染、可能會危及後端資料保護。

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

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

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

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

還原節點健全狀況並移除污染時、 Trident 將:

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

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

此範例會在 Windows 工作者節點上安裝 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 叢集上的託管身分識別

此範例會安裝 Trident 、以在 AKS 叢集上啟用託管身分識別。

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

此範例會安裝 Trident 、以搭配使用於 AKS 叢集上的雲端身分識別。

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

此範例會安裝 Trident 、以搭配使用於 AKS 叢集上的雲端身分識別。

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

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

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