Anpassung der Trident -Bedieninstallation
Der Trident -Operator ermöglicht die Anpassung der Trident Installation mithilfe der Attribute in der TridentOrchestrator Spezifikation. Wenn Sie die Installation über das hinaus anpassen möchten, was TridentOrchestrator Wenn Argumente dies zulassen, sollten Sie die Verwendung in Betracht ziehen. tridentctl um benutzerdefinierte YAML-Manifeste zu generieren, die nach Bedarf angepasst werden können.
Controller-Pods und Node-Pods verstehen
Trident läuft als ein einzelner Controller-Pod sowie als ein Node-Pod auf jedem Worker-Knoten im Cluster. Der Node-Pod muss auf jedem Host ausgeführt werden, auf dem Sie möglicherweise ein Trident -Volume einbinden möchten.
Kubernetes"Knotenselektoren" Und"Toleranzen und Verunreinigungen" werden verwendet, um einen Pod so einzuschränken, dass er auf einem bestimmten oder bevorzugten Knoten ausgeführt wird. Verwendung des ControllerPlugin und NodePlugin Sie können Einschränkungen und Überschreibungen festlegen.
-
Das Controller-Plugin übernimmt die Bereitstellung und Verwaltung von Volumes, wie z. B. Snapshots und Größenänderungen.
-
Das Node-Plugin kümmert sich um die Anbindung des Speichers an den Knoten.
Konfigurationsoptionen
|
|
spec.namespace`wird angegeben in `TridentOrchestrator um den Namensraum zu kennzeichnen, in dem Trident installiert ist. Dieser Parameter kann nach der Installation von Trident nicht mehr aktualisiert werden. Der Versuch dazu führt dazu, dass TridentOrchestrator Status ändern auf Failed . Trident ist nicht für die Migration zwischen Namensräumen vorgesehen.
|
Diese Tabelle enthält Details TridentOrchestrator Attribute.
| Parameter | Beschreibung | Standard | ||
|---|---|---|---|---|
|
Namespace, in dem Trident installiert werden soll |
|
||
|
Debugging für Trident aktivieren |
|
||
|
|
|
||
|
Einstellung auf |
|
||
|
Auf einstellen |
|
||
|
Setzen Sie die Workload-Identität auf ("azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"), wenn Sie Cloud Identity auf einem AKS-Cluster verwenden. Setzen Sie die AWS IAM-Rolle auf ("eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role"), wenn Sie Cloud Identity auf einem EKS-Cluster verwenden. Stellen Sie die Cloud-Identität auf ("iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com") ein, wenn Sie die Cloud-Identität auf einem GKE-Cluster verwenden. |
|
||
|
Trident über IPv6 installieren |
FALSCH |
||
|
Zeitüberschreitung für Kubernetes-Operationen.
|
|
||
|
Senden Sie keine Autosupport-Bundles automatisch an NetApp. |
|
||
|
Das Container-Image für Autosupport-Telemetrie |
|
||
|
Die Adresse/der Port eines Proxys zum Senden von Autosupport-Telemetriedaten |
|
||
|
Eine Flagge, die zum Deinstallieren von Trident verwendet wird. |
|
||
|
Zu verwendendes Trident Protokollierungsformat [text,json] |
|
||
|
Trident Bild zum Installieren |
|
||
|
Pfad zur internen Registry im Format |
|
||
|
Pfad zum kubelet-Verzeichnis auf dem Host |
|
||
|
Eine Liste der Ressourcen, die gelöscht werden müssen, um Trident vollständig zu entfernen. |
|||
|
Geheimnisse zum Abrufen von Bildern aus einer internen Registrierung |
|||
|
Legt die Image-Pull-Richtlinie für den Trident -Operator fest. Gültige Werte sind: |
|
||
|
Zusätzliche Knotenselektoren für Pods. Folgt dem gleichen Format wie |
Kein Standardwert; optional |
||
|
Überschreibt die Kubernetes-Toleranzen für Pods. Folgt dem gleichen Format wie |
Kein Standardwert; optional |
||
|
Zusätzliche Knotenselektoren für Pods. Folgt dem gleichen Format wie |
Kein Standardwert; optional |
||
|
Überschreibt die Kubernetes-Toleranzen für Pods. Folgt dem gleichen Format wie |
Kein Standardwert; optional |
||
|
Ermöglicht Trident , die Knoten des Kubernetes-Clusters für die Verwaltung von Volumes mithilfe des angegebenen Datenspeicherprotokolls vorzubereiten. Momentan,
|
|||
|
Das vom Controller bei der Kommunikation mit dem Kubernetes-API-Server verwendete Limit für Abfragen pro Sekunde (QPS). Der Burst-Wert wird automatisch basierend auf dem QPS-Wert festgelegt. |
|
||
|
Ermöglicht gleichzeitige Trident -Controller-Operationen für verbesserten Durchsatz.
|
FALSCH |
|
|
Weitere Informationen zur Formatierung von Pod-Parametern finden Sie unter"Pods zu Knoten zuweisen" . |
Details zum erzwungenen Abtrennen
Die Option „Zwangstrennung“ ist verfügbar für ontap-san , ontap-san-economy , ontap-nas , Und ontap-nas-economy nur. Bevor Sie die erzwungene Trennung aktivieren, muss das Non-Graceful Node Shutdown (NGNS) im Kubernetes-Cluster aktiviert werden. NGNS ist standardmäßig für Kubernetes 1.28 und höher aktiviert. Weitere Informationen finden Sie unter"Kubernetes: Nicht ordnungsgemäßes Herunterfahren eines Knotens" .
|
|
Bei der Verwendung des ontap-nas oder ontap-nas-economy Treiber, Sie müssen die autoExportPolicy Parameter in der Backend-Konfiguration zu true damit Trident den Zugriff vom Kubernetes-Knoten mit der angewendeten Taint-Markierung mithilfe verwalteter Exportrichtlinien einschränken kann.
|
|
|
Da Trident auf Kubernetes NGNS basiert, entfernen Sie es nicht. out-of-service Beeinträchtigungen durch einen fehlerhaften Knoten, bis alle nicht tolerierbaren Arbeitslasten neu geplant sind. Das leichtfertige Anwenden oder Entfernen der Markierung kann den Schutz der Backend-Daten gefährden.
|
Wenn der Kubernetes-Clusteradministrator die node.kubernetes.io/out-of-service=nodeshutdown:NoExecute Verunreinigung des Knotens und enableForceDetach ist eingestellt auf true Trident ermittelt den Knotenstatus und:
-
Den Backend-E/A-Zugriff auf die an diesen Knoten angeschlossenen Volumes einstellen.
-
Markieren Sie das Trident -Knotenobjekt als
dirty(Nicht geeignet für Neuveröffentlichungen).Der Trident -Controller lehnt neue Veröffentlichungsanforderungen für Volumes so lange ab, bis der Knoten erneut qualifiziert ist (nachdem er als markiert wurde). dirty) durch den Trident -Knotenpod. Alle Workloads, die mit einem eingebundenen PVC geplant sind (auch nachdem der Clusterknoten fehlerfrei und bereit ist), werden erst akzeptiert, wenn Trident den Knoten verifizieren konnte.clean(sicher für Neuveröffentlichungen).
Sobald der Zustand des Knotens wiederhergestellt und die Beschädigung entfernt ist, wird Trident Folgendes tun:
-
Identifizieren und bereinigen Sie veraltete veröffentlichte Pfade auf dem Knoten.
-
Wenn sich der Knoten in einem
cleanableDer Status (die Außerbetriebnahme-Kennzeichnung wurde entfernt und der Knoten befindet sich im Zustand …)ReadyWenn alle veralteten, veröffentlichten Pfade bereinigt sind und Trident den Knoten wieder zulässt, wird Trident ihn wieder zulassen.cleanund die Veröffentlichung neuer Bände auf dem Knoten zu ermöglichen.
Beispielkonfigurationen
Sie können die Attribute in verwendenKonfigurationsoptionen bei der Definition TridentOrchestrator um Ihre Installation individuell anzupassen.
Grundlegende benutzerdefinierte Konfiguration
Dieses Beispiel wurde nach dem Ausführen des cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml Der Befehl stellt eine einfache benutzerdefinierte Installation dar:
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullSecrets:
- thisisasecret
Knotenselektoren
Dieses Beispiel installiert Trident mit Knotenselektoren.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
controllerPluginNodeSelector:
nodetype: master
nodePluginNodeSelector:
storage: netapp
Windows-Worker-Knoten
Dieses Beispiel wurde nach dem Ausführen des cat deploy/crds/tridentorchestrator_cr.yaml Befehl, installiert Trident auf einem Windows-Worker-Knoten.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
windows: true
Verwaltete Identitäten auf einem AKS-Cluster
Dieses Beispiel installiert Trident, 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
Dieses Beispiel installiert Trident zur Verwendung mit einer Cloud-Identität auf einem AKS-Cluster.
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
Dieses Beispiel installiert Trident zur Verwendung mit einer Cloud-Identität auf einem AKS-Cluster.
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
Dieses Beispiel installiert Trident zur Verwendung mit einer Cloud-Identität auf einem GKE-Cluster.
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