Configurer CVS pour le back-end GCP
Découvrez comment configurer NetApp Cloud Volumes Service (CVS) pour Google Cloud Platform (GCP) en tant que backend avec votre installation d'Astra Trident, à l'aide des exemples de configurations fournis.
NetApp Cloud Volumes Service pour Google Cloud ne prend pas en charge les volumes CVS-Performance de moins de 100 Gio, ou les volumes CVS de moins de 300 Gio. Astra Trident crée automatiquement des volumes de taille minimale si le volume demandé est inférieur à la taille minimale. |
Pour configurer et utiliser le "Cloud Volumes Service pour Google Cloud" back-end, vous avez besoin des éléments suivants :
-
Un compte Google Cloud configuré avec NetApp CVS
-
Numéro de projet de votre compte Google Cloud
-
Compte de service Google Cloud avec le
netappcloudvolumes.admin
rôle -
Fichier de clé API pour votre compte de service CVS
Astra Trident inclut désormais la prise en charge par défaut des volumes plus petits "Type de service CVS sur GCP". Pour les systèmes back-end créés avec storageClass=software
, Les volumes auront une taille de provisionnement minimale de 300 Gio. CVS offre actuellement cette fonctionnalité sous disponibilité contrôlée et ne fournit pas de support technique. Les utilisateurs doivent s'inscrire pour accéder aux volumes de sous-Tio "ici". NetApp recommande aux clients d'utiliser des volumes de sous-Tio pour charges de travail non-production.
Lors du déploiement des systèmes back-end avec le type de service CVS par défaut (storageClass=software ), les utilisateurs doivent obtenir l'accès à la fonctionnalité de volumes de sous-Tio dans GCP pour le(s) numéro(s) de projet et l'ID de projet en question. Il est nécessaire qu'Astra Trident provisionne des volumes de sous-Tio. Si ce n'est pas le cas, les créations de volume échoueront pour les demandes de volume dont la taille est inférieure à 600 Gio. Obtenir l'accès aux volumes de sous-Tio à l'aide de "ce formulaire".
|
Les volumes créés par Astra Trident pour le niveau de service CVS par défaut seront provisionnés comme suit :
-
Si la quantité de PVC est inférieure à 300 Gio, l'Astra Trident crée un volume CVS de 300 Gio.
-
Avec des demandes de volume persistant comprises entre 300 Gio et 600 Gio, l'Astra Trident crée un volume CVS de la taille demandée.
-
Si les demandes de volume persistant sont comprises entre 600 Gio et 1 Tio, l'Astra Trident crée un volume CVS Tio.
-
Avec des demandes de volume supérieur à 1 Tio, Astra Trident crée un volume CVS de la taille demandée.
Options de configuration du back-end
Voir le tableau suivant pour les options de configuration du back-end :
Paramètre | Description | Valeur par défaut |
---|---|---|
|
Toujours 1 |
|
|
Nom du pilote de stockage |
« gcp-cvs » |
|
Nom personnalisé ou système back-end de stockage |
Nom du pilote + "_" + partie de la clé API |
|
Type de stockage. Choisissez parmi |
|
|
Numéro de projet de compte Google Cloud. La valeur ajoutée est disponible sur la page d'accueil du portail Google Cloud. |
|
|
Région de compte CVS. Il s'agit de la région où le back-end provisionne les volumes. |
|
|
Clé API pour le compte de service Google Cloud avec le |
|
|
URL proxy si le serveur proxy doit se connecter au compte CVS. Le serveur proxy peut être un proxy HTTP ou HTTPS. Pour un proxy HTTPS, la validation du certificat est ignorée pour permettre l'utilisation de certificats auto-signés dans le serveur proxy. Les serveurs proxy avec authentification activée ne sont pas pris en charge. |
|
|
Contrôle précis des options de montage NFS. |
« nfsvers=3 » |
|
Echec du provisionnement si la taille du volume demandé est supérieure à cette valeur |
« » (non appliqué par défaut) |
|
Niveau de service CVS pour les nouveaux volumes. Les valeurs sont « standard », « Premium » et « extrême ». |
« standard » |
|
Réseau GCP utilisé pour les volumes CVS |
« par défaut » |
|
Indicateurs de débogage à utiliser lors du dépannage. Exemple |
nul |
Si vous utilisez un réseau VPC partagé, les deux projectNumber
et hostProjectNumber
doit être spécifié. Dans ce cas, projectNumber
est le projet de service, et hostProjectNumber
est le projet hôte.
Le apiRegion
Il représente la région GCP dans laquelle Astra Trident crée des volumes CVS. Astra Trident peut monter et relier des volumes sur des nœuds Kubernetes qui appartiennent à la même région GCP. Lors de la création d'un back-end, il est important de s'assurer apiRegion
Correspondance avec la région dans laquelle les nœuds Kubernetes sont déployés. Lors de la création de clusters Kubernetes multi-région, des volumes CVS sont créés dans un cluster donné apiRegion
Elle n'est possible qu'avec des charges de travail planifiées sur des nœuds se trouvant dans la même région GCP.
storageClass est un paramètre facultatif que vous pouvez utiliser pour sélectionner le paramètre souhaité "Type de service CVS". Vous pouvez choisir parmi le type de service CVS de base (storageClass=software ) Ou le type de service CVS-Performance (storageClass=hardware ), que Trident utilise par défaut. Assurez-vous de spécifier un apiRegion Qui fournit le CVS respectif storageClass dans votre définition de back-end.
|
L'intégration d'Astra Trident avec le type de service CVS de base sur Google Cloud est une fonctionnalité bêta, non destinée aux workloads de production. Trident est entièrement pris en charge avec le type de service CVS-Performance et l'utilise par défaut. |
Chaque back-end provisionne les volumes dans une seule région Google Cloud. Pour créer des volumes dans d'autres régions, vous pouvez définir des systèmes back-end supplémentaires.
Vous pouvez contrôler la manière dont chaque volume est provisionné par défaut en spécifiant les options suivantes dans une section spéciale du fichier de configuration. Voir les exemples de configuration ci-dessous.
Paramètre | Description | Valeur par défaut |
---|---|---|
|
Règle(s) d'exportation pour les nouveaux volumes |
« 0.0.0.0/0 » |
|
Accès au |
« faux » |
|
Pourcentage de volume réservé pour les snapshots |
« » (Accepter CVS par défaut de 0) |
|
La taille des nouveaux volumes |
« 100Gi » |
Le exportRule
La valeur doit être une liste séparée par des virgules d'une combinaison d'adresses IPv4 ou de sous-réseaux IPv4 en notation CIDR.
Pour tous les volumes créés sur un back-end CVS Google Cloud, Trident copie toutes les étiquettes présentes sur un pool de stockage vers le volume de stockage au moment du provisionnement. Les administrateurs de stockage peuvent définir des étiquettes par pool de stockage et regrouper tous les volumes créés dans un pool de stockage. Cela permet de différencier facilement les volumes en fonction d'un ensemble d'étiquettes personnalisables fournies dans la configuration back-end. |
Exemple 1 : configuration minimale
Il s'agit de la configuration back-end minimale absolue.
{ "version": 1, "storageDriverName": "gcp-cvs", "projectNumber": "012345678901", "apiRegion": "us-west2", "apiKey": { "type": "service_account", "project_id": "my-gcp-project", "private_key_id": "1234567890123456789012345678901234567890", "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" } }
Exemple 2 : configuration du type de service CVS de base
Cet exemple montre une définition interne qui utilise le type de service CVS de base, conçu pour les workloads génériques et fournit des performances légères/modérées, et une disponibilité zonale élevée.
{ "version": 1, "storageDriverName": "gcp-cvs", "projectNumber": "012345678901", "storageClass": "software", "apiRegion": "us-east4", "apiKey": { "type": "service_account", "project_id": "my-gcp-project", "private_key_id": "1234567890123456789012345678901234567890", "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" } }
Exemple 3 : configuration de niveau de service unique
Cet exemple montre un fichier back-end qui applique les mêmes aspects à tous les systèmes de stockage créés par Astra Trident dans la région Google Cloud US-west2. Cet exemple montre également l'utilisation de proxyURL
dans le fichier de configuration back-end.
{ "version": 1, "storageDriverName": "gcp-cvs", "projectNumber": "012345678901", "apiRegion": "us-west2", "apiKey": { "type": "service_account", "project_id": "my-gcp-project", "private_key_id": "1234567890123456789012345678901234567890", "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" } }
Exemple 4 : configuration de pool de stockage virtuel
Cet exemple représente le fichier de définition back-end configuré avec des pools de stockage virtuel et avec StorageClasses
cela leur renvoie.
Dans l'exemple de fichier de définition de back-end illustré ci-dessous, des valeurs par défaut spécifiques sont définies pour tous les pools de stockage, qui définissent le snapshotReserve
à 5 % et le exportRule
à 0.0.0.0/0. Les pools de stockage virtuels sont définis dans le storage
section. Dans cet exemple, chaque pool de stockage est défini lui-même serviceLevel
, et certains pools remplacent les valeurs par défaut.
{ "version": 1, "storageDriverName": "gcp-cvs", "projectNumber": "012345678901", "apiRegion": "us-west2", "apiKey": { "type": "service_account", "project_id": "my-gcp-project", "private_key_id": "1234567890123456789012345678901234567890", "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" } ] }
Les définitions de classe de stockage suivantes font référence aux pools de stockage ci-dessus. À l'aide du parameters.selector
Vous pouvez spécifier pour chaque classe de stockage le pool virtuel utilisé pour héberger un volume. Les aspects définis dans le pool sélectionné seront définis pour le volume.
La première classe de stockage (cvs-extreme-extra-protection
) correspond au premier pool de stockage virtuel. Il s'agit du seul pool offrant des performances extrêmes avec une réserve Snapshot de 10 %. La dernière classe de stockage (cvs-extra-protection
) appelle tout pool de stockage qui fournit une réserve d'instantanés de 10%. Astra Trident décide du pool de stockage virtuel sélectionné et s'assure que les exigences de la réserve Snapshot sont respectées.
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
Et la suite ?
Après avoir créé le fichier de configuration backend, exécutez la commande suivante :
tridentctl create backend -f <backend-file>
Si la création du back-end échoue, la configuration du back-end est erronée. Vous pouvez afficher les journaux pour déterminer la cause en exécutant la commande suivante :
tridentctl logs
Après avoir identifié et corrigé le problème avec le fichier de configuration, vous pouvez exécuter de nouveau la commande create.