English
DH3MFW
headerimage

NetApp beschreibt Trident wie folgt:

Astra Trident ist ein Open-Source- und vollständig unterstützter Storage-Orchestrator für Container und Kubernetes-Distributionen, einschließlich Red hat OpenShift. Trident kann mit dem gesamten NetApp Storage-Portfolio eingesetzt werden, einschließlich NetApp ONTAP und Element Storage-Systeme. Es unterstützt auch NFS- und iSCSI-Verbindungen. Trident beschleunigt den DevOps-Workflow, da Endbenutzer Storage über ihre NetApp Storage-Systeme bereitstellen und managen können, ohne dass ein Storage-Administrator eingreifen muss.

Zu der Dokumentation geht es hier lang: https://docs.netapp.com/de-de/netapp-solutions/containers/rh-os-n_overview_trident.html

wget https://github.com/NetApp/trident/releases/download/v22.01.0/trident-installer-22.01.0.tar.gz

Zuerst den Trident-Operator herunterladen und installieren. Ich habe mich für den HELM Weg entschieden, da dieses Tool schon installiert war:

Den Trident-Operator werde ich in einen eigenen Namespace installieren
helm install trident helm/trident-operator-22.01.0.tgz --create-namespace --namespace trident-operator

Zur Kontrolle folgende Befehle absetzen:

helm status trident helm get all trident

In meinem Fall hatte ich eine NetApp FAs8200 im Zugriff und dort sind folgende Vorarbeiten nötig:

Eigenen VServer erzeugen

fas8200::> vserver create -vserver NFS-Datastore06-K8S -subtype default -rootvolume NFS_Datastore06_K8S_root -rootvolume-security-style unix -language C.UTF-8 -snapshot-policy none -data-services data-iscsi,data-nfs,data-cifs,data-flexcache,data-nvme-tcp -foreground true -aggregate aggr_n1_sas_1TB
[Job 7843] Job succeeded:
Vserver creation completed.

"Dummerweise" hat eine LIF eine Firewall-Policy und es braucht deswegen 2 LIF´s.

Ein Data-LIF erzeugen

DataLIF
fas8200::> net int create -vserver NFS-Datastore06-K8S -lif NFS-Datastore06-K8S-lif1 -address 172.16.14.10 -netmask 255.255.255.0 -service-policy default-data-files -home-node fas8200-n1 -home-port a0a-14
(network interface create)

Ein extra MGMT-Lif erzeugen

MGMT-LIF
fas8200::> net int create -vserver NFS-Datastore06-K8S -lif NFS-Datastore06-K8S-adm -service-policy default-management -address 172.16.14.11 -netmask 255.255.255.0 -home-node fas8200-n1 -home-port a0a-14

Default Route einstellen

fas8200::> route add -vserver NFS-Datastore06-K8S -destination 0.0.0.0/0 -gateway 172.16.14.1

Einen ArbeitsUser erstellen (mit den Rechten auf die OntapAPI und SSH)

fas8200::> security login create -user-or-group-name sdeiss -application ontapi -authentication-method password -role vsadmin -is-ns-switch-group no -second-authentication-method none -vserver NFS-Datastore06-K8S

Please enter a password for user 'sdeiss':
Please enter it again:

fas8200::> security login create -user-or-group-name sdeiss -application ssh -authentication-method password -role vsadmin -is-ns-switch-group no -second-authentication-method none -vserver NFS-Datastore06-K8S

Jetzt kann per SSH auf die 172.16.14.11 eingelogged werden.

Ausserdem muss dem vServer ein Aggregat fest zugewiesen werden:

vserver modify -vserver NFS-Datastore06-K8S -aggr-list aggr_n1_sas_1TB

Zuerst erstellten wir eine Datei backend.yaml

apiVersion: v1
kind: Secret
metadata:
  name: backend-tbc-ontap-nas-secret
  namespace: trident-operator
type: Opaque
stringData:
  username: admin
  password: changeme
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-ontap-nas
  namespace: trident-operator
spec:
  version: 1
  storageDriverName: ontap-nas
  managementLIF: 172.16.14.11
  dataLIF: 172.16.14.10
  backendName: tbc-ontap-nas
  svm: NFS-Datastore-K8S
  autoExportCIDRs:
  - 172.16.155.0/24
  autoExportPolicy: true
  credentials:
    name: backend-tbc-ontap-nas-secret

Dann die Datei dem Kubernetes Cluster bekannt geben:

kubectl apply -f backend.yaml

Jetzt braucht es eine Storage Classe ( Gold,Silber,Bronze usw ).

Dazu erzeugt man eine Date mit dem Namen: storageclass.yaml

apiVersionstorage.k8s.io/v1
kindStorageClass
metadata:
  nameontap-nfs
  annotations:
    storageclass.kubernetes.io/is-default-class"true"
provisionercsi.trident.netapp.io
mountOptions["rw", "nfsvers=3", "proto=tcp"]
parameters:
   backendType"ontap-nas"

Und dem Cluster bekannt geben und bestehende StorageClassen erweitern

kubectl apply -f storageclass.yaml


Zur Überprüfung am Besten sich das Backend und die PODs ansehen:

kubectl get pods -n trident-operator
kubectl get tridentbackend -n trident-operator
kubectl get sc

 

 

nach oben