Trident-Operator-Installation anpassen
Der Trident-Operator ermöglicht es Ihnen, die Trident-Installation mithilfe der Attribute in der TridentOrchestrator spec anzupassen. Wenn Sie die Installation über das hinaus anpassen möchten, was TridentOrchestrator Argumente erlauben, sollten Sie tridentctl verwenden, um benutzerdefinierte YAML-Manifeste zu generieren und diese nach Bedarf zu modifizieren.
Controller-Pods und Node-Pods verstehen
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 potenziell ein Trident-Volume einbinden möchten.
Kubernetes "Knotenselektoren" und "Tolerations und Taints" werden verwendet, um einen Pod auf einen bestimmten oder bevorzugten Knoten zu beschränken. Mit dem ControllerPlugin und NodePlugin können Sie Einschränkungen und Überschreibungen festlegen.
-
Das Controller-Plugin übernimmt die Bereitstellung und Verwaltung von Volumes, wie Snapshots und Größenänderungen.
-
Das Node-Plugin übernimmt das Anbinden des Speichers an den Knoten.
Konfigurationsoptionen
|
|
spec.namespace wird in TridentOrchestrator angegeben, um den Namespace zu kennzeichnen, in dem Trident installiert ist. Dieser Parameter kann nach der Installation von Trident nicht mehr aktualisiert werden. Ein entsprechender Versuch führt dazu, dass sich der TridentOrchestrator Status in Failed ändert. Trident ist nicht für die Migration zwischen Namespaces vorgesehen.
|
Diese Tabelle enthält `TridentOrchestrator`Attribute im Detail.
| Parameter | Beschreibung | Standard | ||||
|---|---|---|---|---|---|---|
|
Namespace, in dem Trident installiert werden soll |
|
||||
|
Debugging für Trident aktivieren |
|
||||
|
|
|
||||
|
Das Setzen auf |
|
||||
|
Setzen Sie auf |
|
||||
|
Auf Workload-Identität („azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx“) setzen, wenn Cloud Identity auf einem AKS-Cluster verwendet wird. Auf AWS IAM-Rolle („'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'“) setzen, wenn Cloud Identity auf einem EKS-Cluster verwendet wird. Auf Cloud-Identität („'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'“) setzen, wenn Cloud Identity auf einem GKE-Cluster verwendet wird. |
|
||||
|
Trident über IPv6 installieren |
false |
||||
|
Zeitüberschreitung für Kubernetes-Operationen.
|
|
||||
|
Senden Sie Autosupport-Pakete nicht automatisch an NetApp |
|
||||
|
Das Container-Image für Autosupport Telemetry |
|
||||
|
Die Adresse/der Port eines Proxys zum Senden von Autosupport-Telemetrie |
|
||||
|
Eine Kennzeichnung, die zur Deinstallation von Trident verwendet wird |
|
||||
|
Trident Protokollierungsformat, das verwendet werden soll [text,json] |
|
||||
|
Trident-Image zur Installation |
|
||||
|
Pfad zur internen Registry im Format |
|
||||
|
Pfad zum kubelet-Verzeichnis auf dem Host |
|
||||
|
Eine Liste der Ressourcen, die gelöscht werden müssen, um eine vollständige Entfernung von Trident durchzuführen |
|||||
|
Geheimnisse zum Abrufen von Images aus einer internen Registry |
|||||
|
Legt die Richtlinie zum Abrufen von Images 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 es Trident, die Knoten des Kubernetes-Clusters für die Verwaltung von Volumes mithilfe des angegebenen Datenspeicherprotokolls vorzubereiten. Aktuell ist
|
|||||
|
Die vom Controller bei der Kommunikation mit dem Kubernetes-API-Server verwendete Abfrageanzahl pro Sekunde (QPS). Der Burst-Wert wird automatisch anhand des QPS-Werts festgelegt. |
|
||||
|
Ermöglicht gleichzeitige Trident-Controller-Operationen für einen verbesserten Durchsatz.
|
false |
||||
|
Legt Ressourcenlimits und -anforderungen für den Trident-Controller und die Node-Pods in Kubernetes fest. Sie können CPU und Arbeitsspeicher für jeden Container und Sidecar konfigurieren, um die Ressourcenzuweisung in Kubernetes zu verwalten. Weitere Informationen zur Konfiguration von Ressourcenanforderungen und -limits finden Sie unter "Ressourcenverwaltung für Pods und Container".
|
|
||||
|
Aktivieren Sie HTTPS für den Prometheus metrics endpoint. |
false |
||||
|
Aktiviert die Host-Netzwerkverbindung für den Trident Controller. Dies ist nützlich, wenn Sie den Frontend- und Backend-Datenverkehr in einem Multi-Home-Netzwerk trennen möchten. |
false |
|
|
Weitere Informationen zur Formatierung von Pod-Parametern finden Sie unter "Pods Knoten zuweisen". |
Beispielkonfigurationen
Sie können die Attribute in Konfigurationsoptionen verwenden, wenn Sie TridentOrchestrator definieren, um Ihre Installation anzupassen.
Grundlegende benutzerdefinierte Konfiguration
Dieses Beispiel, das nach Ausführung des cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml Befehls erstellt wurde, 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, das nach Ausführung des cat deploy/crds/tridentorchestrator_cr.yaml Befehls erstellt wurde, 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 identity 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 der 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.
|
|
Hinweis: Die in diesem Beispiel angegebenen Anforderungs- und Grenzwerte dienen lediglich Demonstrationszwecken. Passen Sie diese Werte an Ihre Umgebung und 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 Trident Controller sowie für Trident Windows- und Linux-Node-Pods
Dieses Beispiel konfiguriert Kubernetes-Ressourcenanforderungen und -Limits für Trident Controller sowie Trident Windows- und Linux Node Pods.
|
|
Hinweis: Die in diesem Beispiel angegebenen Anforderungs- und Grenzwerte dienen lediglich Demonstrationszwecken. Passen Sie diese Werte an Ihre Umgebung und 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