Skip to main content
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Anpassen der Trident Operator-Installation

Beitragende

Mit dem Operator Trident können Sie die Trident-Installation mithilfe der Attribute in der Spezifikation anpassen TridentOrchestrator. Wenn Sie die Installation über die Argumente hinaus anpassen möchten TridentOrchestrator, sollten Sie die Verwendung verwenden, tridentctl um benutzerdefinierte YAML-Manifeste zu erstellen, die bei Bedarf geändert werden.

Allgemeines zu Controller-Pods und Node-Pods

Trident wird als einzelner Controller-Pod ausgeführt und zusätzlich als Node Pod auf jedem Worker-Node im Cluster. Der Node Pod muss auf einem beliebigen Host ausgeführt werden, auf dem Sie potenziell ein Trident Volume mounten möchten.

Kubernetes "Knotenauswahl" Und "Toleranzen und Verfleckungen" Werden verwendet, um die Ausführung eines Pod auf einem bestimmten oder bevorzugten Node einzuschränken. Verwenden von`ControllerPlugin` und NodePlugin, Sie können Bedingungen und Überschreibungen festlegen.

  • Das Controller-Plug-in übernimmt Volume-Bereitstellung und -Management, beispielsweise Snapshots und Größenanpassungen.

  • Das Node-Plug-in verarbeitet das Verbinden des Speichers mit dem Node.

Konfigurationsoptionen

Warnung spec.namespace Wird in angegeben TridentOrchestrator, um den Namespace zu kennzeichnen, in dem Trident installiert ist. Dieser Parameter kann nicht aktualisiert werden, nachdem Trident installiert wurde. Der Versuch, dies zu tun, führt dazu, dass der TridentOrchestrator Status in geändert Failed wird. Trident soll nicht über Namespaces hinweg migriert werden.

Diese Tabelle enthält Einzelheiten TridentOrchestrator Attribute.

Parameter Beschreibung Standard

namespace

Namespace, in dem Trident installiert werden soll

"default"

debug

Debugging für Trident aktivieren

false

enableForceDetach

ontap-san, ontap-san-economy Und ontap-nas-economy nur. Arbeitet mit Kubernetes Non-Graceful Node Shutdown (NGNS), um Clusteradministratoren die Möglichkeit zu geben, Workloads mit gemounteten Volumes sicher auf neue Nodes zu migrieren, sollte ein Node fehlerhaft werden.

false

windows

Einstellung auf true Ermöglicht die Installation auf Windows Worker-Knoten.

false

cloudProvider

Auf einstellen "Azure" Bei Verwendung von verwalteten Identitäten oder einer Cloud-Identität auf einem AKS-Cluster. Bei Verwendung einer Cloud-Identität auf einem EKS Cluster auf „AWS“ einstellen.

""

cloudIdentity

Bei Verwendung der Cloud-Identität auf einem AKS-Cluster auf Workload-Identität („Azure.Workload.Identity/Client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx“) einstellen. Bei Verwendung der Cloud-Identität auf einem EKS-Cluster auf AWS iam-Rolle (“'eks.amazonaws.com/role-arn: arn:aws:iam::123456:Role/Trident-Role“) einstellen.

""

IPv6

Installieren Sie Trident über IPv6

Falsch

k8sTimeout

Zeitüberschreitung für Kubernetes-Betrieb

30sec

silenceAutosupport

Senden Sie keine AutoSupport Bundles an NetApp
Automatisch

false

autosupportImage

Das Container-Image für AutoSupport Telemetrie

"netapp/trident-autosupport:24.10"

autosupportProxy

Die Adresse/den Port eines Proxys zum Senden von AutoSupport
Telemetrie

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

uninstall

Ein Flag, mit dem Trident deinstalliert wird

false

logFormat

Verwendetes Trident-Protokollierungsformat [Text,json]

"text"

tridentImage

Zu installierendes Trident-Image

"netapp/trident:24.10"

imageRegistry

Pfad zur internen Registrierung des Formats
<registry FQDN>[:port][/subpath]

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

kubeletDir

Pfad zum kubelet-Verzeichnis auf dem Host

"/var/lib/kubelet"

wipeout

Eine Liste der zu löschenden Ressourcen, um Trident vollständig zu entfernen

imagePullSecrets

Secrets, um Bilder aus einer internen Registrierung zu ziehen

imagePullPolicy

Legt die BildPull-Richtlinie für den Trident-Operator fest. Gültige Werte sind:
Always Um immer das Bild zu ziehen.
IfNotPresent Nur wenn das Image nicht auf dem Node vorhanden ist, soll das Image kopiert werden.
Never Nie das Bild ziehen.

IfNotPresent

controllerPluginNodeSelector

Zusätzliche Node-Auswahl für Pods Entspricht dem Format pod.spec.nodeSelector.

Kein Standard; optional

controllerPluginTolerations

Überschreibt Kubernetes-Toleranzen für Pods. Entspricht dem gleichen Format wie pod.spec.Tolerations.

Kein Standard; optional

nodePluginNodeSelector

Zusätzliche Node-Auswahl für Pods Entspricht dem Format pod.spec.nodeSelector.

Kein Standard; optional

nodePluginTolerations

Überschreibt Kubernetes-Toleranzen für Pods. Entspricht dem gleichen Format wie pod.spec.Tolerations.

Kein Standard; optional

nodePrep

Ermöglicht Trident, die Nodes des Kubernetes-Clusters so vorzubereiten, dass Volumes mithilfe des angegebenen Daten-Storage-Protokolls gemanagt werden. Derzeit iscsi wird nur der Wert unterstützt.

Hinweis Weitere Informationen zum Formatieren von Pod-Parametern finden Sie unter "Pods werden Nodes zugewiesen".

Details zum Ablösen von Krafteinwirkung

Die Trennung erzwingen ist nur für, ontap-san-economy und onatp-nas-economy verfügbar ontap-san. Vor der Aktivierung von Force Trennen muss das nicht-anmutige Herunterfahren des Node (NGNS) auf dem Kubernetes-Cluster aktiviert sein. Weitere Informationen finden Sie unter "Kubernetes: Nicht ordnungsgemäßes Herunterfahren von Nodes".

Hinweis Bei Verwendung des Treibers müssen Sie den Parameter in der Back-End-Konfiguration auf true so einstellen autoExportPolicy, dass Trident den Zugriff auf den Kubernetes-Node mit der unter Verwendung ontap-nas-economy von verwalteten Exportrichtlinien angewandten Beschränkung einschränken kann.
Warnung Da Trident auf Kubernetes NGNS setzt, sollten Sie Fehler erst dann von einem ungesunden Node entfernen out-of-service, wenn alle nicht tolerierbaren Workloads neu geplant werden. Das rücksichtslose Anwenden oder Entfernen der Schein kann den Schutz der Back-End-Daten gefährden.

Wenn der Kubernetes Cluster Administrator den Farbton auf den Node angewendet hat node.kubernetes.io/out-of-service=nodeshutdown:NoExecute und enableForceDetach auf festgelegt ist true, bestimmt Trident den Node-Status und:

  1. Beenden Sie den Back-End-I/O-Zugriff für Volumes, die auf diesem Node gemountet sind.

  2. Markieren Sie das Trident-Node-Objekt als dirty (nicht sicher für neue Publikationen).

    Hinweis Der Trident-Controller lehnt neue Anforderungen für veröffentlichte Volumes ab, bis der Node vom Trident-Node-Pod neu qualifiziert wird (nachdem er als markiert wurde dirty). Sämtliche Workloads, die mit einer gemounteten PVC geplant sind (selbst nachdem der Cluster-Node funktionsfähig und bereit ist), werden erst akzeptiert, wenn Trident den Node überprüfen kann clean (sicher für neue Publikationen).

Wenn der Zustand des Node wiederhergestellt ist und die Ganzzahl entfernt wird, führt Trident folgende Aktionen aus:

  1. Veraltete veröffentlichte Pfade auf dem Node identifizieren und bereinigen.

  2. Wenn der Node im cleanable Status (die Servicestaint wurde entfernt, und der Node befindet sich im Ready Status) und alle veralteten, veröffentlichten Pfade bereinigt sind, übermittelt Trident den Node erneut als clean und ermöglicht neue veröffentlichte Volumes auf dem Node.

Beispielkonfigurationen

Sie können die Attribute in verwenden Konfigurationsoptionen Beim Definieren TridentOrchestrator Um die Installation anzupassen.

Einfache benutzerdefinierte Konfiguration

Dies ist ein Beispiel für eine benutzerdefinierte Basisinstallation.

cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  imagePullSecrets:
  - thisisasecret
Knotenauswahl

In diesem Beispiel wird Trident mit Node-Selektoren installiert.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  controllerPluginNodeSelector:
    nodetype: master
  nodePluginNodeSelector:
    storage: netapp
Windows Worker-Knoten

In diesem Beispiel wird Trident auf einem Windows-Arbeitsknoten installiert.

cat deploy/crds/tridentorchestrator_cr.yaml
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  windows: true
Verwaltete Identitäten auf einem AKS-Cluster

In diesem Beispiel wird Trident installiert, um verwaltete Identitäten auf einem AKS-Cluster zu aktivieren.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "Azure"
Cloud-Identität auf einem AKS-Cluster

In diesem Beispiel wird Trident zur Verwendung mit einer Cloud-Identität auf einem AKS-Cluster installiert.

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'
Cloud-Identität auf einem EKS-Cluster

In diesem Beispiel wird Trident zur Verwendung mit einer Cloud-Identität auf einem AKS-Cluster installiert.

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'"
Cloud-Identität für GKE

In diesem Beispiel wird Trident zur Verwendung mit einer Cloud-Identität auf einem GKE-Cluster installiert.

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