Back-Ends mit kubectl erstellen
Ein Backend definiert die Beziehung zwischen Astra Trident und einem Storage-System. Er erzählt Astra Trident, wie man mit diesem Storage-System kommuniziert und wie Astra Trident Volumes darauf bereitstellen sollte. Nach der Installation von Astra Trident ist der nächste Schritt die Erstellung eines Backend. Der TridentBackendConfig
Mit Custom Resource Definition (CRD) können Sie Trident Back-Ends direkt über die Kubernetes Schnittstelle erstellen und managen. Dies können Sie mit tun kubectl
Oder das vergleichbare CLI Tool für Ihre Kubernetes Distribution.
TridentBackendConfig
TridentBackendConfig
(tbc
, tbconfig
, tbackendconfig
) Ist ein Front-End, Namensvetter CRD, mit dem Sie Astra Trident Back-Ends mit verwalten können kubectl
. Kubernetes- und Storage-Administratoren können Back-Ends jetzt direkt über die Kubernetes-CLI erstellen und managen, ohne dass ein dediziertes Dienstprogramm für die Befehlszeilenschnittstelle erforderlich ist (tridentctl
).
Bei der Erstellung eines TridentBackendConfig
Objekt, geschieht Folgendes:
-
Ein Back-End wird automatisch von Astra Trident auf Basis der von Ihnen zu erstellenden Konfiguration erstellt. Dies wird intern als A dargestellt
TridentBackend
(tbe
,tridentbackend
) CR. -
Der
TridentBackendConfig
Ist eindeutig an A gebundenTridentBackend
Das wurde von Astra Trident entwickelt.
Beide TridentBackendConfig
Pflegt eine 1:1-Zuordnung mit einem TridentBackend
. Die erstere Schnittstelle, die dem Benutzer zum Design und zur Konfiguration von Back-Ends zur Verfügung gestellt wird. Letztere ist, wie Trident das tatsächliche Backend-Objekt darstellt.
TridentBackend CRS werden automatisch von Astra Trident erstellt. Sie sollten diese nicht ändern. Wenn Sie an Back-Ends Aktualisierungen vornehmen möchten, ändern Sie das TridentBackendConfig Objekt:
|
Im folgenden Beispiel finden Sie Informationen zum Format des TridentBackendConfig
CR:
apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: backend-tbc-ontap-san spec: version: 1 backendName: ontap-san-backend storageDriverName: ontap-san managementLIF: 10.0.0.1 dataLIF: 10.0.0.2 svm: trident_svm credentials: name: backend-tbc-ontap-san-secret
Sie können sich auch die Beispiele im ansehen "trident-Installationsprogramm" Verzeichnis für Beispielkonfigurationen für die gewünschte Speicherplattform/den gewünschten Service.
Der spec
Nimmt Back-End-spezifische Konfigurationsparameter ein. In diesem Beispiel verwendet das Backend ontap-san
Speichertreiber und verwendet die hier tabellarischen Konfigurationsparameter. Eine Liste der Konfigurationsoptionen für den gewünschten Speichertreiber finden Sie unter "Back-End-Konfigurationsinformationen für Ihren Speichertreiber".
Der spec
Abschnitt enthält auch credentials
Und deletionPolicy
Felder, die neu in den eingeführt werden TridentBackendConfig
CR:
-
credentials
: Dieser Parameter ist ein Pflichtfeld und enthält die Anmeldeinformationen, die zur Authentifizierung mit dem Speichersystem/Service verwendet werden. Dies ist auf ein vom Benutzer erstelltes Kubernetes Secret festgelegt. Die Anmeldeinformationen können nicht im Klartext weitergegeben werden und führen zu einem Fehler. -
deletionPolicy
: Dieses Feld definiert, was passieren soll, wenn derTridentBackendConfig
Wird gelöscht. Es kann einen von zwei möglichen Werten annehmen:-
delete
: Dies führt zur Löschung beiderTridentBackendConfig
CR und das zugehörige Backend. Dies ist der Standardwert. -
retain
: Wenn aTridentBackendConfig
CR wird gelöscht, die Backend-Definition ist weiterhin vorhanden und kann mit verwaltet werdentridentctl
. Einstellen der Löschrichtlinie aufretain
Benutzer können ein Downgrade auf eine frühere Version (vor 21.04) durchführen und die erstellten Back-Ends behalten. Der Wert für dieses Feld kann nach einem aktualisiert werdenTridentBackendConfig
Wird erstellt.
-
Der Name eines Backend wird mit festgelegt spec.backendName . Wenn nicht angegeben, wird der Name des Backend auf den Namen des gesetzt TridentBackendConfig Objekt (metadata.name). Es wird empfohlen, mit explizit Back-End-Namen festzulegen spec.backendName .
|
Back-Ends, die mit erstellt wurden tridentctl Ist nicht zugeordnet TridentBackendConfig Objekt: Sie können solche Back-Ends mit verwalten kubectl Durch Erstellen von A TridentBackendConfig CR. Es muss sorgfältig darauf achten, identische Konfigurationsparameter festzulegen (z. B. spec.backendName , spec.storagePrefix , spec.storageDriverName , Und so weiter). Astra Trident bindet automatisch die neu erstellte TridentBackendConfig Mit dem bereits vorhandenen Backend.
|
Schritte im Überblick
Um ein neues Backend mit zu erstellen kubectl
, Sie sollten Folgendes tun:
-
Erstellen Sie ein "Kubernetes Secret". 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.
Nachdem Sie ein Backend erstellt haben, können Sie den Status mit beobachten kubectl get tbc <tbc-name> -n <trident-namespace>
Und sammeln Sie weitere Details.
Schritt: Ein Kubernetes Secret erstellen
Erstellen Sie einen geheimen Schlüssel, der die Anmeldedaten für den Zugriff für das Backend enthält. Dies ist nur bei jedem Storage Service/jeder Plattform möglich. Hier ein Beispiel:
$ kubectl -n trident create -f backend-tbc-ontap-san-secret.yaml apiVersion: v1 kind: Secret metadata: name: backend-tbc-ontap-san-secret type: Opaque stringData: username: cluster-admin password: t@Ax@7q(>
In dieser Tabelle sind die Felder zusammengefasst, die für jede Speicherplattform im Secret enthalten sein müssen:
Beschreibung der geheimen Felder der Speicherplattform | Geheim | Feldbeschreibung |
---|---|---|
Azure NetApp Dateien |
Client-ID |
Die Client-ID aus einer App-Registrierung |
Cloud Volumes Service für GCP |
Private_Schlüssel_id |
ID des privaten Schlüssels. Teil des API-Schlüssels für GCP-Servicekonto mit CVS-Administratorrolle |
Cloud Volumes Service für GCP |
Privater_Schlüssel |
Privater Schlüssel. Teil des API-Schlüssels für GCP-Servicekonto mit CVS-Administratorrolle |
Element (NetApp HCI/SolidFire) |
Endpunkt |
MVIP für den SolidFire-Cluster mit Mandanten-Anmeldedaten |
ONTAP |
Benutzername |
Benutzername für die Verbindung mit dem Cluster/SVM. Wird für die Anmeldeinformationsbasierte Authentifizierung verwendet |
ONTAP |
Passwort |
Passwort für die Verbindung mit dem Cluster/SVM Wird für die Anmeldeinformationsbasierte Authentifizierung verwendet |
ONTAP |
KundenPrivateKey |
Base64-kodierte Wert des privaten Client-Schlüssels. Wird für die zertifikatbasierte Authentifizierung verwendet |
ONTAP |
ChapUsername |
Eingehender Benutzername. Erforderlich, wenn usCHAP=true verwendet wird. Für |
ONTAP |
ChapInitiatorSecret |
CHAP-Initiatorschlüssel. Erforderlich, wenn usCHAP=true verwendet wird. Für |
ONTAP |
ChapTargetBenutzername |
Zielbenutzername. Erforderlich, wenn usCHAP=true verwendet wird. Für |
ONTAP |
ChapTargetInitiatorSecret |
Schlüssel für CHAP-Zielinitiator. Erforderlich, wenn usCHAP=true verwendet wird. Für |
Auf das in diesem Schritt erstellte Geheimnis wird im verwiesen spec.credentials
Feld von TridentBackendConfig
Objekt, das im nächsten Schritt erstellt wird.
Schritt 2: Erstellen Sie die TridentBackendConfig
CR
Sie sind jetzt bereit, Ihre zu erstellen TridentBackendConfig
CR. In diesem Beispiel wird ein Backend verwendet, das den verwendet ontap-san
Treiber wird mithilfe des erstellt TridentBackendConfig
Unten gezeigte Objekte:
$ kubectl -n trident create -f backend-tbc-ontap-san.yaml
apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: backend-tbc-ontap-san spec: version: 1 backendName: ontap-san-backend storageDriverName: ontap-san managementLIF: 10.0.0.1 dataLIF: 10.0.0.2 svm: trident_svm credentials: name: backend-tbc-ontap-san-secret
Schritt 3: Überprüfen Sie den Status des TridentBackendConfig
CR
Nun, da Sie die erstellt haben TridentBackendConfig
CR, Sie können den Status überprüfen. Das folgende Beispiel zeigt:
$ kubectl -n trident get tbc backend-tbc-ontap-san NAME BACKEND NAME BACKEND UUID PHASE STATUS backend-tbc-ontap-san ontap-san-backend 8d24fce7-6f60-4d4a-8ef6-bab2699e6ab8 Bound Success
Ein Back-End wurde erfolgreich erstellt und an das gebunden TridentBackendConfig
CR.
Die Phase kann einen der folgenden Werte annehmen:
-
Bound
: DasTridentBackendConfig
CR ist mit einem Backend verknüpft, und dieses Backend enthältconfigRef
Auf einstellenTridentBackendConfig
CR’s uid. -
Unbound
: Dargestellt mit""
. DerTridentBackendConfig
Objekt ist nicht an ein Backend gebunden. Neu erstelltTridentBackendConfig
CRS befinden sich standardmäßig in dieser Phase. Wenn die Phase sich ändert, kann sie nicht wieder auf Unbound zurückgesetzt werden. -
Deleting
: DasTridentBackendConfig
CR’sdeletionPolicy
Wurde auf Löschen festgelegt. Wenn derTridentBackendConfig
CR wird gelöscht und wechselt in den Löschzustand.-
Wenn im Backend keine PVCs (Persistent Volume Claims) vorhanden sind, löschen Sie den
TridentBackendConfig
Wird dazu führen, dass Astra Trident das Backend sowie das löschtTridentBackendConfig
CR. -
Wenn ein oder mehrere VES im Backend vorhanden sind, wechselt es in den Löschzustand. Der
TridentBackendConfig
Anschließend wechselt CR in die Löschphase. Das Backend undTridentBackendConfig
Werden erst gelöscht, nachdem alle PVCs gelöscht wurden.
-
-
Lost
: Das Backend, das mit dem verbunden istTridentBackendConfig
CR wurde versehentlich oder absichtlich gelöscht und dasTridentBackendConfig
CR hat noch einen Verweis auf das gelöschte Backend. DerTridentBackendConfig
CR kann weiterhin unabhängig vom gelöscht werdendeletionPolicy
Wert: -
Unknown
: Astra Trident kann den Zustand oder die Existenz des mit dem verbundenen Backend nicht bestimmenTridentBackendConfig
CR. Beispiel: Wenn der API-Server nicht antwortet oder wenn dertridentbackends.trident.netapp.io
CRD fehlt. Dies kann eine Intervention des Benutzers erfordern.
In dieser Phase wird erfolgreich ein Backend erstellt! Es gibt mehrere Operationen, die zusätzlich gehandhabt werden können, wie z. B. "Back-End-Updates und Löschungen am Back-End".
(Optional) Schritt 4: Weitere Informationen
Sie können den folgenden Befehl ausführen, um weitere Informationen über Ihr Backend zu erhalten:
kubectl -n trident get tbc backend-tbc-ontap-san -o wide
NAME BACKEND NAME BACKEND UUID PHASE STATUS STORAGE DRIVER DELETION POLICY backend-tbc-ontap-san ontap-san-backend 8d24fce7-6f60-4d4a-8ef6-bab2699e6ab8 Bound Success ontap-san delete
Zusätzlich können Sie auch einen YAML/JSON Dump von erhalten TridentBackendConfig
.
$ kubectl -n trident get tbc backend-tbc-ontap-san -o yaml
apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: creationTimestamp: "2021-04-21T20:45:11Z" finalizers: - trident.netapp.io generation: 1 name: backend-tbc-ontap-san namespace: trident resourceVersion: "947143" uid: 35b9d777-109f-43d5-8077-c74a4559d09c spec: backendName: ontap-san-backend credentials: name: backend-tbc-ontap-san-secret managementLIF: 10.0.0.1 dataLIF: 10.0.0.2 storageDriverName: ontap-san svm: trident_svm version: 1 status: backendInfo: backendName: ontap-san-backend backendUUID: 8d24fce7-6f60-4d4a-8ef6-bab2699e6ab8 deletionPolicy: delete lastOperationStatus: Success message: Backend 'ontap-san-backend' created phase: Bound
backendInfo
Enthält backendName
Und das backendUUID
Des Back-End, das als Antwort auf das erstellt wurde TridentBackendConfig
CR. Der lastOperationStatus
Feld gibt den Status des letzten Vorgangs des an TridentBackendConfig
CR, der vom Benutzer ausgelöst werden kann (z. B. hat der Benutzer etwas in geändert spec
) Oder ausgelöst durch Astra Trident (z. B. während Astra Trident Neustart). Er kann entweder erfolgreich oder fehlgeschlagen sein. phase
Stellt den Status der Beziehung zwischen dem dar TridentBackendConfig
CR und das Backend. Im obigen Beispiel phase
Hat den Wert gebunden, was bedeutet, dass der TridentBackendConfig
CR ist mit dem Backend verknüpft.
Sie können die ausführen kubectl -n trident describe tbc <tbc-cr-name>
Befehl, um Details zu den Ereignisprotokollen zu erhalten.
Sie können ein Back-End, das einen zugeordneten enthält, nicht aktualisieren oder löschen TridentBackendConfig Objekt wird verwendet tridentctl . Um die Schritte zu verstehen, die mit dem Wechsel zwischen verbunden sind tridentctl Und TridentBackendConfig , "Sehen Sie hier".
|