Konfiguration eines CVS für GCP-Backend
Erfahren Sie, wie Sie NetApp Cloud Volumes Service (CVS) für die Google Cloud Platform (GCP) als Backend für Ihre Astra Trident Installation mit den angegebenen Beispielkonfigurationen konfigurieren.
NetApp Cloud Volumes Service für Google Cloud unterstützt keine CVS-Performance Volumes mit einer Größe von weniger als 100 gib oder CVS Volumes mit einer Größe von weniger als 300 gib. Astra Trident erstellt automatisch Volumes mit der Mindestgröße, wenn das angeforderte Volume kleiner als die Mindestgröße ist. |
Um den zu konfigurieren und zu verwenden "Cloud Volumes Service für Google Cloud" Back-End, Sie benötigen Folgendes:
-
Ein Google Cloud Konto, der mit NetApp CVS konfiguriert ist
-
Projektnummer Ihres Google Cloud-Kontos
-
Google Cloud-Servicekonto bei
netappcloudvolumes.admin
Rolle -
API-Schlüsseldatei für Ihr CVS-Servicekonto
Astra Trident unterstützt jetzt auch kleinere Volumes – standardmäßig "CVS-Servicetyp auf GCP". Für mit erstellte Back-Ends storageClass=software
, Volumes verfügen jetzt über eine minimale Bereitstellungsgröße von 300 gib. CVS bietet diese Funktion derzeit unter Controlled Availability und bietet keinen technischen Support. Benutzer müssen sich für den Zugriff auf Sub-1-tib-Volumes anmelden "Hier". NetApp empfiehlt Kunden, Sub-1-tib-Volumes für nicht produktive-Workloads zu nutzen.
Bei der Bereitstellung von Back-Ends mithilfe des standardmäßigen CVS-Servicetyps (storageClass=software ), Benutzer müssen Zugriff auf die Sub-1-tib-Volumes-Funktion in GCP für die Projektnummer(n) und Projekt-ID(s) in Frage erhalten. Dieser ist für die Bereitstellung von Sub-1-tib-Volumes durch Astra Trident erforderlich. Wenn nicht, schlagen Volumenkreationen bei VES fehl, die weniger als 600 gib betragen. Zugriff auf Sub-1-tib-Volumes mit "Dieses Formular".
|
Von Astra Trident erstellte Volumes für den CVS Standard-Service-Level werden wie folgt bereitgestellt:
-
PVCs, die kleiner als 300 gib sind, führen dazu, dass Astra Trident ein CVS-Volumen von 300 gib erstellt.
-
PVCs, die zwischen 300 gib und 600 gib liegen, führen dazu, dass Astra Trident ein CVS-Volumen der angeforderten Größe erstellt.
-
PVCs, die zwischen 600 gib und 1 tib liegen, führen dazu, dass Astra Trident ein CVS Volume mit 1 tib erstellt.
-
PVCs, die mehr als 1 tib sind, führen dazu, dass Astra Trident ein CVS Volume der angeforderten Größe erstellt.
Back-End-Konfigurationsoptionen
Die Back-End-Konfigurationsoptionen finden Sie in der folgenden Tabelle:
Parameter | Beschreibung | Standard |
---|---|---|
|
Immer 1 |
|
|
Name des Speichertreibers |
„gcp-cvs“ |
|
Benutzerdefinierter Name oder das Storage-Backend |
Treibername + „_“ + Teil des API-Schlüssels |
|
Art des Storage: Wählen Sie aus |
|
|
Google Cloud Account Projektnummer. Der Wert ist auf der Homepage des Google Cloud Portals zu finden. |
|
|
CVS-Account-Region. Es ist der Bereich, in dem das Backend die Volumen bereitstellen wird. |
|
|
API-Schlüssel für das Google Cloud-Dienstkonto bei |
|
|
Proxy-URL, wenn Proxyserver für die Verbindung mit CVS-Konto benötigt wird. Der Proxy-Server kann entweder ein HTTP-Proxy oder ein HTTPS-Proxy sein. Bei einem HTTPS-Proxy wird die Zertifikatvalidierung übersprungen, um die Verwendung von selbstsignierten Zertifikaten im Proxyserver zu ermöglichen. Proxy-Server mit aktivierter Authentifizierung werden nicht unterstützt. |
|
|
Engmaschige Kontrolle der NFS-Mount-Optionen |
„Nfsvers=3“ |
|
Bereitstellung fehlgeschlagen, wenn die angeforderte Volume-Größe über diesem Wert liegt |
„“ (nicht standardmäßig durchgesetzt) |
|
CVS Service-Level für neue Volumes Die Werte sind „Standard“, „Premium“ und „extrem“. |
„Standard“ |
|
Für CVS Volumes verwendetes GCP-Netzwerk |
„Standard“ |
|
Fehler-Flags bei der Fehlerbehebung beheben. Beispiel: |
Null |
Bei der Verwendung eines gemeinsamen VPC-Netzwerks von beiden projectNumber
Und hostProjectNumber
Muss angegeben werden. In diesem Fall projectNumber
Ist das Service-Projekt, und hostProjectNumber
Ist das Hostprojekt.
Der apiRegion
Repräsentiert die GCP-Region, in der Astra Trident CVS Volumes erstellt Wenn über Regionen hinweg Kubernetes Cluster erstellt werden, werden CVS Volumes in einem erstellt apiRegion
Kann in Workloads verwendet werden, die auf Nodes über mehrere GCP-Regionen hinweg geplant sind. Beachten Sie, dass der Verkehr in der Region mit zusätzlichen Kosten verbunden ist.
|
Die Integration von Astra Trident mit dem Basis-CVS-Servicetyp auf Google Cloud ist eine Beta-Funktion, die nicht für Produktions-Workloads bestimmt ist. Trident wird vollständig unterstützt mit dem Service-Typ CVS-Performance und verwendet ihn standardmäßig. |
Jedes Back-End stellt Volumes in einer einzigen Google Cloud-Region bereit. Um Volumes in anderen Regionen zu erstellen, können Sie zusätzliche Back-Ends definieren.
Sie können festlegen, wie jedes Volume standardmäßig bereitgestellt wird, indem Sie die folgenden Optionen in einem speziellen Abschnitt der Konfigurationsdatei angeben. Sehen Sie sich die Konfigurationsbeispiele unten an.
Parameter | Beschreibung | Standard |
---|---|---|
|
Die Exportregel(n) für neue Volumes |
„0.0.0.0/0“ |
|
Zugriff auf die |
„Falsch“ |
|
Prozentsatz des für Snapshots reservierten Volumes |
"" (CVS Standard 0 akzeptieren) |
|
Die Größe neuer Volumes |
„100 Gi“ |
Der exportRule
Wert muss eine kommagetrennte Liste beliebiger Kombinationen von IPv4-Adressen oder IPv4-Subnetzen in CIDR-Notation sein.
Trident kopiert bei allen Volumes, die auf einem Google Cloud Backend von CVS erstellt wurden, alle auf einem Storage-Pool vorhandenen Labels zum Zeitpunkt der Bereitstellung auf das Storage-Volume. Storage-Administratoren können Labels pro Storage-Pool definieren und alle Volumes gruppieren, die in einem Storage-Pool erstellt wurden. Dies bietet eine praktische Möglichkeit, Volumes anhand einer Reihe anpassbarer Etiketten, die in der Backend-Konfiguration bereitgestellt werden, zu unterscheiden. |
Beispiel 1: Minimale Konfiguration
Dies ist die absolute minimale Backend-Konfiguration.
{ "version": 1, "storageDriverName": "gcp-cvs", "projectNumber": "012345678901", "apiRegion": "us-west2", "apiKey": { "type": "service_account", "project_id": "my-gcp-project", "private_key_id": "<id_value>", "private_key": " -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY-----\n", "client_email": "cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com", "client_id": "123456789012345678901", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com" } }
Beispiel 2: Konfiguration des Basis-CVS-Diensttyps
Dieses Beispiel zeigt eine Backend-Definition, die den CVS Basis-Service-Typ nutzt, der für allgemeine Workloads gedacht ist und eine geringe/mittlere Performance bietet, sowie eine hohe zonale Verfügbarkeit.
{ "version": 1, "storageDriverName": "gcp-cvs", "projectNumber": "012345678901", "storageClass": "software", "apiRegion": "us-east4", "apiKey": { "type": "service_account", "project_id": "my-gcp-project", "private_key_id": "<id_value>", "private_key": " -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY-----\n", "client_email": "cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com", "client_id": "123456789012345678901", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com" } }
Beispiel 3: Einzel-Service Level-Konfiguration
Dieses Beispiel zeigt eine Backend-Datei, die dieselben Aspekte auf allen mit Astra Trident erstellten Storage in der Region Google Cloud US-west2 anwendet. In diesem Beispiel wird auch die Verwendung von angezeigt proxyURL
In der Back-End-Konfigurationsdatei
{ "version": 1, "storageDriverName": "gcp-cvs", "projectNumber": "012345678901", "apiRegion": "us-west2", "apiKey": { "type": "service_account", "project_id": "my-gcp-project", "private_key_id": "<id_value>", "private_key": " -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY-----\n", "client_email": "cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com", "client_id": "123456789012345678901", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com" }, "proxyURL": "http://proxy-server-hostname/", "nfsMountOptions": "vers=3,proto=tcp,timeo=600", "limitVolumeSize": "10Ti", "serviceLevel": "premium", "defaults": { "snapshotDir": "true", "snapshotReserve": "5", "exportRule": "10.0.0.0/24,10.0.1.0/24,10.0.2.100", "size": "5Ti" } }
Beispiel 4: Konfiguration des virtuellen Speicherpools
Dieses Beispiel zeigt die Back-End-Definitionsdatei, die mit virtuellen Speicherpools konfiguriert ist StorageClasses
Die sich auf sie beziehen.
In der unten gezeigten Beispiel-Backend-Definitionsdatei werden für alle Speicherpools spezifische Standardwerte festgelegt, die die definieren snapshotReserve
Bei 5% und der exportRule
Zu 0.0.0.0/0. Die virtuellen Speicherpools werden im definiert storage
Abschnitt. In diesem Beispiel legt jeder einzelne Storage-Pool seinen eigenen fest serviceLevel
, Und einige Pools überschreiben die Standardwerte.
{ "version": 1, "storageDriverName": "gcp-cvs", "projectNumber": "012345678901", "apiRegion": "us-west2", "apiKey": { "type": "service_account", "project_id": "my-gcp-project", "private_key_id": "<id_value>", "private_key": " -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY-----\n", "client_email": "cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com", "client_id": "123456789012345678901", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com" }, "nfsMountOptions": "vers=3,proto=tcp,timeo=600", "defaults": { "snapshotReserve": "5", "exportRule": "0.0.0.0/0" }, "labels": { "cloud": "gcp" }, "region": "us-west2", "storage": [ { "labels": { "performance": "extreme", "protection": "extra" }, "serviceLevel": "extreme", "defaults": { "snapshotDir": "true", "snapshotReserve": "10", "exportRule": "10.0.0.0/24" } }, { "labels": { "performance": "extreme", "protection": "standard" }, "serviceLevel": "extreme" }, { "labels": { "performance": "premium", "protection": "extra" }, "serviceLevel": "premium", "defaults": { "snapshotDir": "true", "snapshotReserve": "10" } }, { "labels": { "performance": "premium", "protection": "standard" }, "serviceLevel": "premium" }, { "labels": { "performance": "standard" }, "serviceLevel": "standard" } ] }
Die folgenden StorageClass-Definitionen beziehen sich auf die oben genannten Speicherpools. Durch Verwendung des parameters.selector
Feld können Sie für jede StorageClass den virtuellen Pool angeben, der zum Hosten eines Volumes verwendet wird. Im Volume werden die Aspekte definiert, die im ausgewählten Pool definiert sind.
Die erste StorageClass (cvs-extreme-extra-protection
) Zuordnung zum ersten virtuellen Speicherpool. Dies ist der einzige Pool, der eine extreme Performance mit einer Snapshot-Reserve von 10 % bietet. Die letzte StorageClass (cvs-extra-protection
) Ruft alle Speicher-Pool, die eine Snapshot-Reserve von 10% bietet. Astra Trident entscheidet, welcher Virtual Storage Pool ausgewählt wird und stellt sicher, dass die Anforderungen an die Snapshot-Reserve erfüllt werden.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-extra-protection provisioner: netapp.io/trident parameters: selector: "performance=extreme; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-standard-protection provisioner: netapp.io/trident parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium-extra-protection provisioner: netapp.io/trident parameters: selector: "performance=premium; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium provisioner: netapp.io/trident parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-standard provisioner: netapp.io/trident parameters: selector: "performance=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extra-protection provisioner: netapp.io/trident parameters: selector: "protection=extra" allowVolumeExpansion: true
Was kommt als Nächstes?
Führen Sie nach dem Erstellen der Back-End-Konfigurationsdatei den folgenden Befehl aus:
tridentctl create backend -f <backend-file>
Wenn die Backend-Erstellung fehlschlägt, ist mit der Back-End-Konfiguration ein Fehler aufgetreten. Sie können die Protokolle zur Bestimmung der Ursache anzeigen, indem Sie den folgenden Befehl ausführen:
tridentctl logs
Nachdem Sie das Problem mit der Konfigurationsdatei identifiziert und korrigiert haben, können Sie den Befehl „Erstellen“ erneut ausführen.