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 läuft als einzelner Controller-Pod und als 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 "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 |
|
||||
|
Einstellung auf |
|
||||
|
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. Bei Verwendung der Cloud-Identität auf einem GKE-Cluster auf Cloud-Identität ("iam.gke.io/gcp-Service-Account: xxxx@mygcpproject.iam.gserviceaccount.com'") gesetzt. |
|
||||
|
Installieren Sie Trident über IPv6 |
Falsch |
||||
|
Zeitüberschreitung für Kubernetes-Operationen.
|
|
||||
|
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
|
|||||
|
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 |
||||
|
Legt Kubernetes-Ressourcenlimits und -anforderungen für den Trident -Controller und die Node-Pods fest. Sie können CPU und Arbeitsspeicher für jeden Container und Sidecar konfigurieren, um die Ressourcenzuweisung in Kubernetes zu verwalten. Weitere Informationen zum Konfigurieren von Ressourcenanforderungen und -limits finden Sie unter"Ressourcenverwaltung für Pods und Container" Die
|
|
||||
|
Aktivieren Sie HTTPS für den Prometheus-Metrikendpunkt. |
Falsch |
||||
|
Ermöglicht die Host-Netzwerkverbindung für den Trident -Controller. Dies ist nützlich, wenn Sie den Frontend- und Backend-Datenverkehr in einem Netzwerk mit mehreren Heimnetzwerken trennen möchten. |
Falsch |
|
|
Weitere Informationen zum Formatieren von Pod-Parametern finden Sie unter "Pods werden Nodes zugewiesen". |
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
Konfiguration von Kubernetes-Ressourcenanforderungen und -limits für Trident -Controller und Trident -Linux-Node-Pods
Dieses Beispiel konfiguriert Kubernetes-Ressourcenanforderungen und -limits für Trident -Controller und Trident -Linux-Node-Pods.
|
|
Haftungsausschluss: Die in diesem Beispiel angegebenen Anforderungs- und Grenzwerte dienen lediglich Demonstrationszwecken. Passen Sie diese Werte an Ihre Umgebung und Ihre Arbeitslastanforderungen an. |
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullSecrets:
- thisisasecret
resources:
controller:
trident-main:
requests:
cpu: 10m
memory: 80Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
csi-provisioner:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-attacher:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-resizer:
requests:
cpu: 3m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-snapshotter:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
trident-autosupport:
requests:
cpu: 1m
memory: 30Mi
limits:
cpu: 50m
memory: 128Mi
node:
linux:
trident-main:
requests:
cpu: 10m
memory: 60Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
node-driver-registrar:
requests:
cpu: 1m
memory: 10Mi
limits:
cpu: 50m
memory: 32Mi
Konfiguration von Kubernetes-Ressourcenanforderungen und -limits für den Trident -Controller sowie für Trident Windows- und Linux-Node-Pods
Dieses Beispiel konfiguriert Kubernetes-Ressourcenanforderungen und -limits für den Trident -Controller sowie für Trident -Windows- und Linux-Node-Pods.
|
|
Haftungsausschluss: Die in diesem Beispiel angegebenen Anforderungs- und Grenzwerte dienen lediglich Demonstrationszwecken. Passen Sie diese Werte an Ihre Umgebung und Ihre Arbeitslastanforderungen an. |
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullSecrets:
- thisisasecret
windows: true
resources:
controller:
trident-main:
requests:
cpu: 10m
memory: 80Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
csi-provisioner:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-attacher:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-resizer:
requests:
cpu: 3m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-snapshotter:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
trident-autosupport:
requests:
cpu: 1m
memory: 30Mi
limits:
cpu: 50m
memory: 128Mi
node:
linux:
trident-main:
requests:
cpu: 10m
memory: 60Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
node-driver-registrar:
requests:
cpu: 1m
memory: 10Mi
limits:
cpu: 50m
memory: 32Mi
windows:
trident-main:
requests:
cpu: 6m
memory: 40Mi
limits:
cpu: 200m
memory: 128Mi
# sidecars
node-driver-registrar:
requests:
cpu: 6m
memory: 40Mi
limits:
cpu: 100m
memory: 128Mi
liveness-probe:
requests:
cpu: 2m
memory: 40Mi
limits:
cpu: 50m
memory: 64Mi