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.
Erfahren Sie mehr über Astra Trident Support für CVS für GCP
Astra Trident unterstützt Volumes mit dem standardmäßigen CVS-Servicetyp auf "GCP". Astra Trident unterstützt CVS Volumes mit weniger als 100 gib nicht, unabhängig vom vom vom vom vom CVS-Servicetyp zulässigen Minimum. Daher erstellt Trident automatisch ein Volume mit 100 gib, 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
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.