Wechseln Sie zwischen den Back-End-Managementoptionen
Erfahren Sie in Astra Trident, wie Back-Ends auf verschiedene Art und Weise gemanagt werden. Mit der Einführung von TridentBackendConfig
, Administratoren haben jetzt zwei unterschiedliche Arten von Back-Ends zu verwalten. Dies stellt die folgenden Fragen:
-
Mit können Back-Ends erstellt werden
tridentctl
Gemanagt werden mitTridentBackendConfig
? -
Mit können Back-Ends erstellt werden
TridentBackendConfig
Gemanagt werden mittridentctl
?
Managen tridentctl
Back-Ends mit TridentBackendConfig
In diesem Abschnitt werden die Schritte aufgeführt, die für das Management von Back-Ends erforderlich sind, die mit erstellt wurden tridentctl
Erstellen Sie direkt über die Kubernetes Schnittstelle TridentBackendConfig
Objekte:
Dies gilt für die folgenden Szenarien:
-
Bereits vorhandene Back-Ends, die kein A haben
TridentBackendConfig
Weil sie mit erstellt wurdentridentctl
. -
Neue Back-Ends, mit denen erstellt wurden
tridentctl
, Während andereTridentBackendConfig
Objekte sind vorhanden.
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:
-
Fahren Sie mit der Verwendung fort
tridentctl
Um Back-Ends zu managen, die mit ihr erstellt wurden. -
Back-Ends werden mit erstellt
tridentctl
Zu einer neuenTridentBackendConfig
Objekt: Dies würde bedeuten, dass die Back-Ends mit gemanagt werdenkubectl
Und nichttridentctl
.
Um ein bereits vorhandenes Backend mit zu verwalten kubectl
, Sie müssen ein erstellen TridentBackendConfig
Das bindet an das vorhandene Backend. 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 muss sorgfältig darauf achten, identische Konfigurationsparameter festzulegen (z. B.spec.backendName
,spec.storagePrefix
,spec.storageDriverName
, Und so weiter).spec.backendName
Muss auf den Namen des vorhandenen Backend eingestellt werden.
Schritt 0: Identifizieren Sie das Backend
Um ein zu erstellen TridentBackendConfig
Das bindet an ein vorhandenes Backend, müssen Sie die Konfiguration des Backend erhalten. 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 Sie ein TridentBackendConfig
CR
Im nächsten Schritt wird ein erstellt TridentBackendConfig
CR, das automatisch an die bereits vorhandene bindet ontap-nas-backend
(Wie in diesem Beispiel). Stellen Sie sicher, dass folgende Anforderungen erfüllt sind:
-
Der gleiche Backend-Name wird in definiert
spec.backendName
. -
Die Konfigurationsparameter sind mit dem ursprünglichen Back-End identisch.
-
Virtual Storage Pools (falls vorhanden) müssen dieselbe Reihenfolge beibehalten wie im ursprünglichen Backend.
-
Anmeldedaten werden bei einem Kubernetes Secret und nicht im Klartext bereitgestellt.
In diesem Fall die TridentBackendConfig
Wird so aussehen:
$ 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
Nach dem TridentBackendConfig
Wurde erstellt, seine Phase muss sein Bound
. Sie sollte außerdem den gleichen Backend-Namen und die gleiche UUID wie das vorhandene Backend widerspiegeln.
$ kubectl -n trident 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 mit dem verwaltet tbc-ontap-nas-backend
TridentBackendConfig
Objekt:
Managen TridentBackendConfig
Back-Ends mit tridentctl
`tridentctl` Kann zur Auflistung von Back-Ends verwendet werden, die mit erstellt wurden `TridentBackendConfig`. Darüber hinaus können Administratoren solche Back-Ends mithilfe von auch vollständig managen `tridentctl` Durch Löschen `TridentBackendConfig` Mit Sicherheit `spec.deletionPolicy` Ist auf festgelegt `retain`.
Schritt 0: Identifizieren Sie das Backend
Nehmen wir beispielsweise an, dass das folgende Backend mit erstellt 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 | +-------------------+----------------+--------------------------------------+--------+---------+
Von der Ausgabe, ist es gesehen, dass TridentBackendConfig
Wurde erfolgreich erstellt und ist an ein Backend gebunden [die UUID des Backend beachten].
Schritt 1: Bestätigen deletionPolicy
Ist auf festgelegt retain
Lassen Sie uns den Wert von betrachten deletionPolicy
. Dies muss eingestellt werden retain
. Dadurch wird sichergestellt, dass, wenn ein TridentBackendConfig
CR wird gelöscht, die Backend-Definition ist weiterhin vorhanden und kann mit verwaltet werden 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 nur mit dem nächsten Schritt fort deletionPolicy Ist auf festgelegt retain .
|
Schritt 2: Löschen Sie den TridentBackendConfig
CR
Der letzte Schritt besteht darin, den zu löschen TridentBackendConfig
CR. Nach Bestätigung des deletionPolicy
Ist auf festgelegt retain
, Sie können mit der Löschung 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 | +-------------------+----------------+--------------------------------------+--------+---------+
Bei der Löschung der TridentBackendConfig
Object, Astra Trident entfernt es einfach, ohne das Backend zu löschen.