Wechseln Sie zwischen den Back-End-Managementoptionen
Erfahren Sie in Astra Trident, wie Back-Ends auf verschiedene Art und Weise gemanagt werden.
Optionen für das Management von Back-Ends
Mit der Einführung von TridentBackendConfig
haben Administratoren nun zwei einzigartige Möglichkeiten, Back-Ends zu managen. Dies stellt die folgenden Fragen:
-
Können Back-Ends erstellt
tridentctl
werden mitTridentBackendConfig
? -
Können Back-Ends erstellt mit
TridentBackendConfig
verwaltet werdentridentctl
?
Managen von tridentctl
Back-Ends mit TridentBackendConfig
In diesem Abschnitt werden die Schritte zum Management von Back-Ends behandelt, die durch das Erstellen von Objekten direkt über die Kubernetes-Schnittstelle erstellt TridentBackendConfig
wurden tridentctl
.
Dies gilt für die folgenden Szenarien:
-
Bereits vorhandene Backends, die nicht über ein verfügen
TridentBackendConfig
, weil sie mit erstellt wurdentridentctl
. -
Neue Backends, die mit erstellt wurden
tridentctl
, während andereTridentBackendConfig
Objekte existieren.
In beiden Szenarien werden Back-Ends weiterhin vorhanden sein, wobei Astra Trident Volumes terminieren und darauf arbeiten wird. Administratoren können hier eine von zwei Möglichkeiten wählen:
-
Verwenden Sie weiter
tridentctl
, um Back-Ends zu verwalten, die mit ihm erstellt wurden. -
Binden von Back-Ends, die mit erstellt
tridentctl
wurden, an ein neuesTridentBackendConfig
Objekt. Dies würde bedeuten, dass die Back-Ends mit und nichttridentctl
verwaltet werdenkubectl
.
Um ein vorvorhandenes Backend mit zu verwalten kubectl
, müssen Sie ein erstellen TridentBackendConfig
, das an das vorhandene Backend bindet. Hier eine Übersicht über die Funktionsweise:
-
Kubernetes Secret erstellen: Das Geheimnis enthält die Zugangsdaten, die Astra Trident zur Kommunikation mit dem Storage-Cluster/Service benötigt.
-
Erstellen Sie ein
TridentBackendConfig
Objekt. Dies enthält Angaben zum Storage-Cluster/Service und verweist auf das im vorherigen Schritt erstellte Geheimnis. Es ist darauf zu achten, identische Konfigurationsparameter anzugeben (z. B.spec.backendName
, ,spec.storagePrefix
spec.storageDriverName
und so weiter).spec.backendName
Muss auf den Namen des vorhandenen Backends gesetzt werden.
Schritt 0: Identifizieren Sie das Backend
Um ein zu erstellen TridentBackendConfig
, das an ein vorhandenes Backend bindet, müssen Sie die Backend-Konfiguration abrufen. In diesem Beispiel nehmen wir an, dass ein Backend mithilfe der folgenden JSON-Definition erstellt wurde:
tridentctl get backend ontap-nas-backend -n trident +---------------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +---------------------+----------------+--------------------------------------+--------+---------+ | ontap-nas-backend | ontap-nas | 52f2eb10-e4c6-4160-99fc-96b3be5ab5d7 | online | 25 | +---------------------+----------------+--------------------------------------+--------+---------+ cat ontap-nas-backend.json { "version": 1, "storageDriverName": "ontap-nas", "managementLIF": "10.10.10.1", "dataLIF": "10.10.10.2", "backendName": "ontap-nas-backend", "svm": "trident_svm", "username": "cluster-admin", "password": "admin-password", "defaults": { "spaceReserve": "none", "encryption": "false" }, "labels":{"store":"nas_store"}, "region": "us_east_1", "storage": [ { "labels":{"app":"msoffice", "cost":"100"}, "zone":"us_east_1a", "defaults": { "spaceReserve": "volume", "encryption": "true", "unixPermissions": "0755" } }, { "labels":{"app":"mysqldb", "cost":"25"}, "zone":"us_east_1d", "defaults": { "spaceReserve": "volume", "encryption": "false", "unixPermissions": "0775" } } ] }
Schritt: Ein Kubernetes Secret erstellen
Erstellen Sie einen geheimen Schlüssel, der die Anmeldeinformationen für das Backend enthält, wie in diesem Beispiel gezeigt:
cat tbc-ontap-nas-backend-secret.yaml apiVersion: v1 kind: Secret metadata: name: ontap-nas-backend-secret type: Opaque stringData: username: cluster-admin password: admin-password kubectl create -f tbc-ontap-nas-backend-secret.yaml -n trident secret/backend-tbc-ontap-san-secret created
Schritt 2: Erstellen eines TridentBackendConfig
CR
Im nächsten Schritt wird ein CR erstellt TridentBackendConfig
, der automatisch an das bereits vorhandene bindet ontap-nas-backend
(wie in diesem Beispiel). Stellen Sie sicher, dass folgende Anforderungen erfüllt sind:
-
Der gleiche Backend-Name ist in definiert
spec.backendName
. -
Die Konfigurationsparameter sind mit dem ursprünglichen Back-End identisch.
-
Virtuelle Pools (falls vorhanden) müssen dieselbe Reihenfolge wie im ursprünglichen Backend beibehalten.
-
Anmeldedaten werden bei einem Kubernetes Secret und nicht im Klartext bereitgestellt.
In diesem Fall sieht das TridentBackendConfig
wie folgt aus:
cat backend-tbc-ontap-nas.yaml apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: tbc-ontap-nas-backend spec: version: 1 storageDriverName: ontap-nas managementLIF: 10.10.10.1 dataLIF: 10.10.10.2 backendName: ontap-nas-backend svm: trident_svm credentials: name: mysecret defaults: spaceReserve: none encryption: 'false' labels: store: nas_store region: us_east_1 storage: - labels: app: msoffice cost: '100' zone: us_east_1a defaults: spaceReserve: volume encryption: 'true' unixPermissions: '0755' - labels: app: mysqldb cost: '25' zone: us_east_1d defaults: spaceReserve: volume encryption: 'false' unixPermissions: '0775' kubectl create -f backend-tbc-ontap-nas.yaml -n trident tridentbackendconfig.trident.netapp.io/tbc-ontap-nas-backend created
Schritt 3: Überprüfen Sie den Status des TridentBackendConfig
CR
Nachdem der TridentBackendConfig
erstellt wurde, muss seine Phase sein Bound
. Sie sollte außerdem den gleichen Backend-Namen und die gleiche UUID wie das vorhandene Backend widerspiegeln.
kubectl get tbc tbc-ontap-nas-backend -n trident NAME BACKEND NAME BACKEND UUID PHASE STATUS tbc-ontap-nas-backend ontap-nas-backend 52f2eb10-e4c6-4160-99fc-96b3be5ab5d7 Bound Success #confirm that no new backends were created (i.e., TridentBackendConfig did not end up creating a new backend) tridentctl get backend -n trident +---------------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +---------------------+----------------+--------------------------------------+--------+---------+ | ontap-nas-backend | ontap-nas | 52f2eb10-e4c6-4160-99fc-96b3be5ab5d7 | online | 25 | +---------------------+----------------+--------------------------------------+--------+---------+
Das Backend wird nun vollständig über das Objekt verwaltet tbc-ontap-nas-backend
TridentBackendConfig
.
Managen von TridentBackendConfig
Back-Ends mit tridentctl
`tridentctl` Kann verwendet werden, um Back-Ends aufzulisten, die mit erstellt wurden `TridentBackendConfig`. Darüber hinaus können Administratoren auch wählen, um vollständig verwalten solche Back-Ends durch durch `tridentctl` Löschen `TridentBackendConfig` und sicherstellen, `spec.deletionPolicy` ist auf gesetzt `retain`.
Schritt 0: Identifizieren Sie das Backend
Nehmen wir zum Beispiel an, dass das folgende Backend mit erzeugt wurde TridentBackendConfig
:
kubectl get tbc backend-tbc-ontap-san -n trident -o wide NAME BACKEND NAME BACKEND UUID PHASE STATUS STORAGE DRIVER DELETION POLICY backend-tbc-ontap-san ontap-san-backend 81abcb27-ea63-49bb-b606-0a5315ac5f82 Bound Success ontap-san delete tridentctl get backend ontap-san-backend -n trident +-------------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +-------------------+----------------+--------------------------------------+--------+---------+ | ontap-san-backend | ontap-san | 81abcb27-ea63-49bb-b606-0a5315ac5f82 | online | 33 | +-------------------+----------------+--------------------------------------+--------+---------+
Aus der Ausgabe wird ersichtlich, dass sie TridentBackendConfig
erfolgreich erstellt wurde und an ein Backend gebunden ist [Observe the Backend's UUID].
Schritt 1: Bestätigen deletionPolicy
ist auf eingestellt retain
Lassen Sie uns einen Blick auf den Wert von deletionPolicy
. Dies muss auf eingestellt werden retain
. Dadurch wird sichergestellt, dass beim Löschen eines TridentBackendConfig
CR die Backend-Definition weiterhin vorhanden ist und mit verwaltet werden kann tridentctl
.
kubectl get tbc backend-tbc-ontap-san -n trident -o wide NAME BACKEND NAME BACKEND UUID PHASE STATUS STORAGE DRIVER DELETION POLICY backend-tbc-ontap-san ontap-san-backend 81abcb27-ea63-49bb-b606-0a5315ac5f82 Bound Success ontap-san delete # Patch value of deletionPolicy to retain kubectl patch tbc backend-tbc-ontap-san --type=merge -p '{"spec":{"deletionPolicy":"retain"}}' -n trident tridentbackendconfig.trident.netapp.io/backend-tbc-ontap-san patched #Confirm the value of deletionPolicy kubectl get tbc backend-tbc-ontap-san -n trident -o wide NAME BACKEND NAME BACKEND UUID PHASE STATUS STORAGE DRIVER DELETION POLICY backend-tbc-ontap-san ontap-san-backend 81abcb27-ea63-49bb-b606-0a5315ac5f82 Bound Success ontap-san retain
Fahren Sie nicht mit dem nächsten Schritt fort, es sei denn, es deletionPolicy ist auf eingestellt retain .
|
Schritt 2: Löschen Sie den TridentBackendConfig
CR
Der letzte Schritt besteht darin, den CR zu löschen TridentBackendConfig
. Nach der Bestätigung, dass der deletionPolicy
auf gesetzt ist retain
, können Sie mit dem Löschen fortfahren:
kubectl delete tbc backend-tbc-ontap-san -n trident tridentbackendconfig.trident.netapp.io "backend-tbc-ontap-san" deleted tridentctl get backend ontap-san-backend -n trident +-------------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +-------------------+----------------+--------------------------------------+--------+---------+ | ontap-san-backend | ontap-san | 81abcb27-ea63-49bb-b606-0a5315ac5f82 | online | 33 | +-------------------+----------------+--------------------------------------+--------+---------+
Nach dem Löschen des TridentBackendConfig
Objekts entfernt Astra Trident es einfach, ohne das Backend selbst zu löschen.