Configurer un Cloud Volumes Service pour le backend Google Cloud
Découvrez comment configurer NetApp Cloud Volumes Service pour Google Cloud comme backend pour votre installation Trident à l'aide des exemples de configuration fournis.
Détails du pilote Google Cloud
Trident fournit le gcp-cvs pilote pour communiquer avec le cluster. Les modes d'accès pris en charge sont : ReadWriteOnce (RWO), ReadOnlyMany (ROX), ReadWriteMany (RWX), ReadWriteOncePod (RWOP).
| Conducteur | Protocole | mode de volume | Modes d'accès pris en charge | Systèmes de fichiers pris en charge |
|---|---|---|---|---|
|
NFS |
Système de fichiers |
RWO, ROX, RWX, RWOP |
|
Découvrez la prise en charge par Trident du Cloud Volumes Service pour Google Cloud.
Trident peut créer des volumes Cloud Volumes Service dans l'un des deux modes suivants :"types de services" :
-
CVS-Performance : Le type de service Trident par défaut. Ce type de service optimisé pour les performances est parfaitement adapté aux charges de travail de production qui privilégient la performance. Le type de service CVS-Performance est une option matérielle prenant en charge les volumes d'une taille minimale de 100 Gio. Vous pouvez choisir l'un des"trois niveaux de service" :
-
standard -
premium -
extreme
-
-
CVS : Le type de service CVS offre une haute disponibilité zonale avec des niveaux de performance limités à modérés. Le type de service CVS est une option logicielle qui utilise des pools de stockage pour prendre en charge des volumes aussi petits que 1 Gio. Le pool de stockage peut contenir jusqu'à 50 volumes, tous partageant la capacité et les performances du pool. Vous pouvez choisir l'un des"deux niveaux de service" :
-
standardsw -
zoneredundantstandardsw
-
Pour configurer et utiliser le "Cloud Volumes Service pour Google Cloud" Côté serveur, vous avez besoin des éléments suivants :
-
Un compte Google Cloud configuré avec NetApp Cloud Volumes Service
-
Numéro de projet de votre compte Google Cloud
-
compte de service Google Cloud avec le
netappcloudvolumes.adminrôle -
Fichier de clé API pour votre compte de Cloud Volumes Service
options de configuration du backend
Chaque serveur dorsal provisionne des volumes dans une seule région Google Cloud. Pour créer des volumes dans d'autres régions, vous pouvez définir des serveurs backend supplémentaires.
| Paramètre | Description | Défaut |
|---|---|---|
|
Toujours 1 |
|
|
Nom du pilote de stockage |
"gcp-cvs" |
|
Nom personnalisé ou système de stockage |
Nom du pilote + "_" + partie de la clé API |
|
Paramètre optionnel utilisé pour spécifier le type de service CVS. Utiliser |
|
|
Service de type CVS uniquement. Paramètre optionnel permettant de spécifier les pools de stockage pour la création de volumes. |
|
|
Numéro de projet du compte Google Cloud. Cette valeur se trouve sur la page d'accueil du portail Google Cloud. |
|
|
Requis si vous utilisez un réseau VPC partagé. Dans ce scénario, |
|
|
La région Google Cloud où Trident crée des volumes Cloud Volumes Service . Lors de la création de clusters Kubernetes interrégionaux, les volumes créés dans un |
|
|
Clé API pour le compte de service Google Cloud avec le |
|
|
URL du proxy si un serveur proxy est requis pour se connecter au compte CVS. Le serveur proxy peut être soit un proxy HTTP, soit un proxy HTTPS. Pour un proxy HTTPS, la validation du certificat est ignorée afin de permettre l'utilisation de certificats auto-signés sur 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" |
|
L'approvisionnement échouera si la taille du volume demandée est supérieure à cette valeur. |
"" (non appliqué par défaut) |
|
Le niveau de service CVS-Performance ou CVS pour les nouveaux volumes. Les valeurs CVS-Performance sont |
La valeur par défaut de CVS-Performance est « standard ». La valeur par défaut de CVS est « standardsw ». |
|
Le réseau Google Cloud est utilisé pour les volumes du Cloud Volumes Service . |
"défaut" |
|
Indicateurs de débogage à utiliser lors du dépannage. Exemple, |
nul |
|
Pour permettre l'accès interrégional, votre définition StorageClass pour |
options de provisionnement de volume
Vous pouvez contrôler le provisionnement des volumes par défaut dans le defaults section du fichier de configuration.
| Paramètre | Description | Défaut |
|---|---|---|
|
Les règles d'exportation pour les nouveaux volumes. Doit être une liste séparée par des virgules de toute combinaison d'adresses IPv4 ou de sous-réseaux IPv4 en notation CIDR. |
"0.0.0.0/0" |
|
L'accès à |
"FAUX" |
|
Pourcentage du volume réservé aux instantanés |
"" (accepter la valeur par défaut de CVS : 0) |
|
La taille des nouveaux volumes. La taille minimale requise pour CVS-Performance est de 100 Gio. La valeur minimale de CVS est de 1 Gio. |
Le type de service CVS-Performance est par défaut de « 100 Gio ». Le type de service CVS ne définit pas de valeur par défaut, mais exige un minimum de 1 Gio. |
Exemples de types de services CVS-Performance
Les exemples suivants fournissent des exemples de configurations pour le type de service CVS-Performance.
Exemple 1 : Configuration minimale
Il s'agit de la configuration minimale du backend utilisant le type de service CVS-Performance par défaut avec le niveau de service « standard » 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: <id_value>
private_key: |
-----BEGIN PRIVATE KEY-----
<key_value>
-----END PRIVATE KEY-----
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 niveau de service
Cet exemple illustre les options de configuration du backend, notamment le niveau de service et les valeurs par défaut du volume.
---
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-----
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 3 : Configuration du pool virtuel
Cet échantillon utilise storage pour configurer les pools virtuels et le StorageClasses qui renvoient à eux. Se référer àDéfinitions des classes de stockage pour voir comment les classes de stockage étaient définies.
Ici, des valeurs par défaut spécifiques sont définies pour tous les pools virtuels, qui définissent les snapshotReserve à 5 % et le exportRule à 0.0.0.0/0. Les pools virtuels sont définis dans le storage section. Chaque pool virtuel individuel définit ses propres serviceLevel et certaines pools écrasent les valeurs par défaut. Des étiquettes virtuelles ont été utilisées pour différencier les bassins en fonction de performance et protection .
---
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-----
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
Définitions des classes de stockage
Les définitions StorageClass suivantes s'appliquent à l'exemple de configuration de pool virtuel. En utilisant parameters.selector Vous pouvez spécifier pour chaque StorageClass le pool virtuel utilisé pour héberger un volume. Le volume comprendra les aspects définis dans le pool choisi.
Exemple de classe de stockage
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: cvs-extreme-extra-protection
provisioner: csi.trident.netapp.io
parameters:
selector: performance=extreme; protection=extra
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: cvs-extreme-standard-protection
provisioner: csi.trident.netapp.io
parameters:
selector: performance=premium; protection=standard
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: cvs-premium-extra-protection
provisioner: csi.trident.netapp.io
parameters:
selector: performance=premium; protection=extra
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: cvs-premium
provisioner: csi.trident.netapp.io
parameters:
selector: performance=premium; protection=standard
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: cvs-standard
provisioner: csi.trident.netapp.io
parameters:
selector: performance=standard
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: cvs-extra-protection
provisioner: csi.trident.netapp.io
parameters:
selector: protection=extra
allowVolumeExpansion: true
-
La première classe de stockage(
cvs-extreme-extra-protection) correspond à la première piscine virtuelle. Il s'agit du seul pool offrant des performances extrêmes avec une réserve de snapshots de 10 %. -
La dernière classe de stockage(
cvs-extra-protection) désigne tout pool de stockage qui fournit une réserve d'instantanés de 10 %. Trident détermine le pool virtuel sélectionné et s'assure que les exigences de réserve de snapshots sont respectées.
Exemples de types de services CVS
Les exemples suivants fournissent des exemples de configurations pour le type de service CVS.
Exemple 1 : Configuration minimale
Voici la configuration minimale du backend utilisant storageClass pour spécifier le type de service CVS et la valeur par défaut standardsw niveau de service.
---
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-----
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
serviceLevel: standardsw
Exemple 2 : Configuration du pool de stockage
Cette configuration backend d'exemple utilise storagePools configurer un pool de stockage.
---
version: 1
storageDriverName: gcp-cvs
backendName: gcp-std-so-with-pool
projectNumber: '531265380079'
apiRegion: europe-west1
apiKey:
type: service_account
project_id: cloud-native-data
private_key_id: "<id_value>"
private_key: |-
-----BEGIN PRIVATE KEY-----
<key_value>
-----END PRIVATE KEY-----
client_email: cloudvolumes-admin-sa@cloud-native-data.iam.gserviceaccount.com
client_id: '107071413297115343396'
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%40cloud-native-data.iam.gserviceaccount.com
storageClass: software
zone: europe-west1-b
network: default
storagePools:
- 1bc7f380-3314-6005-45e9-c7dc8c2d7509
serviceLevel: Standardsw
Quelle est la prochaine étape ?
Après avoir créé le fichier de configuration du backend, exécutez la commande suivante :
tridentctl create backend -f <backend-file>
Si la création du backend échoue, c'est qu'il y a un problème avec la configuration du backend. Vous pouvez consulter les journaux pour déterminer la cause en exécutant la commande suivante :
tridentctl logs
Une fois le problème du fichier de configuration identifié et corrigé, vous pouvez exécuter à nouveau la commande de création.