Anpassen der Trident Operator-Installation
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
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, in dem Trident installiert werden soll |
|
|
Debugging für Trident aktivieren |
|
|
|
|
|
Einstellung auf |
|
|
Auf einstellen |
|
|
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. |
|
|
Installieren Sie Trident über IPv6 |
Falsch |
|
Zeitüberschreitung für Kubernetes-Betrieb |
|
|
Senden Sie keine AutoSupport Bundles an NetApp |
|
|
Das Container-Image für AutoSupport Telemetrie |
|
|
Die Adresse/den Port eines Proxys zum Senden von AutoSupport |
|
|
Ein Flag, mit dem Trident deinstalliert wird |
|
|
Verwendetes Trident-Protokollierungsformat [Text,json] |
|
|
Zu installierendes Trident-Image |
|
|
Pfad zur internen Registrierung des Formats |
|
|
Pfad zum kubelet-Verzeichnis auf dem Host |
|
|
Eine Liste der zu löschenden Ressourcen, um Trident vollständig zu entfernen |
|
|
Secrets, um Bilder aus einer internen Registrierung zu ziehen |
|
|
Legt die BildPull-Richtlinie für den Trident-Operator fest. Gültige Werte sind: |
|
|
Zusätzliche Node-Auswahl für Pods Entspricht dem Format |
Kein Standard; optional |
|
Überschreibt Kubernetes-Toleranzen für Pods. Entspricht dem gleichen Format wie |
Kein Standard; optional |
|
Zusätzliche Node-Auswahl für Pods Entspricht dem Format |
Kein Standard; optional |
|
Überschreibt Kubernetes-Toleranzen für Pods. Entspricht dem gleichen Format wie |
Kein Standard; optional |
|
Ermöglicht Trident, die Nodes des Kubernetes-Clusters so vorzubereiten, dass Volumes mithilfe des angegebenen Daten-Storage-Protokolls gemanagt werden. Derzeit |
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".
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.
|
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:
-
Beenden Sie den Back-End-I/O-Zugriff für Volumes, die auf diesem Node gemountet sind.
-
Markieren Sie das Trident-Node-Objekt als
dirty
(nicht sicher für neue Publikationen).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 kannclean
(sicher für neue Publikationen).
Wenn der Zustand des Node wiederhergestellt ist und die Ganzzahl entfernt wird, führt Trident folgende Aktionen aus:
-
Veraltete veröffentlichte Pfade auf dem Node identifizieren und bereinigen.
-
Wenn der Node im
cleanable
Status (die Servicestaint wurde entfernt, und der Node befindet sich imReady
Status) und alle veralteten, veröffentlichten Pfade bereinigt sind, übermittelt Trident den Node erneut alsclean
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