Skip to main content
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Configurer un Cloud Volumes Service pour le backend Google Cloud

Contributeurs netapp-aruldeepa

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

gcp-cvs

NFS

Système de fichiers

RWO, ROX, RWX, RWOP

nfs

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

Ce dont vous aurez besoin

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.admin rô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

version

Toujours 1

storageDriverName

Nom du pilote de stockage

"gcp-cvs"

backendName

Nom personnalisé ou système de stockage

Nom du pilote + "_" + partie de la clé API

storageClass

Paramètre optionnel utilisé pour spécifier le type de service CVS. Utiliser software pour sélectionner le type de service CVS. Sinon, Trident suppose le type de service CVS-Performance(hardware ).

storagePools

Service de type CVS uniquement. Paramètre optionnel permettant de spécifier les pools de stockage pour la création de volumes.

projectNumber

Numéro de projet du compte Google Cloud. Cette valeur se trouve sur la page d'accueil du portail Google Cloud.

hostProjectNumber

Requis si vous utilisez un réseau VPC partagé. Dans ce scénario, projectNumber est le projet de service, et hostProjectNumber est le projet hôte.

apiRegion

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 apiRegion peut être utilisé dans des charges de travail planifiées sur des nœuds répartis sur plusieurs régions Google Cloud. Le trafic interrégional engendre des coûts supplémentaires.

apiKey

Clé API pour le compte de service Google Cloud avec le netappcloudvolumes.admin rôle. Il comprend le contenu au format JSON du fichier de clé privée d'un compte de service Google Cloud (copié tel quel dans le fichier de configuration backend).

proxyURL

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.

nfsMountOptions

Contrôle précis des options de montage NFS.

"nfsvers=3"

limitVolumeSize

L'approvisionnement échouera si la taille du volume demandée est supérieure à cette valeur.

"" (non appliqué par défaut)

serviceLevel

Le niveau de service CVS-Performance ou CVS pour les nouveaux volumes. Les valeurs CVS-Performance sont standard , premium , ou extreme . Les valeurs CVS sont standardsw ou zoneredundantstandardsw .

La valeur par défaut de CVS-Performance est « standard ». La valeur par défaut de CVS est « standardsw ».

network

Le réseau Google Cloud est utilisé pour les volumes du Cloud Volumes Service .

"défaut"

debugTraceFlags

Indicateurs de débogage à utiliser lors du dépannage. Exemple, \{"api":false, "method":true} . N’utilisez cette fonction que si vous effectuez un dépannage et avez besoin d’un journal de transactions détaillé.

nul

allowedTopologies

Pour permettre l'accès interrégional, votre définition StorageClass pour allowedTopologies doit inclure toutes les régions. Par exemple:
- key: topology.kubernetes.io/region
values:
- us-east1
- europe-west1

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

exportRule

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"

snapshotDir

L'accès à .snapshot annuaire

"FAUX"

snapshotReserve

Pourcentage du volume réservé aux instantanés

"" (accepter la valeur par défaut de CVS : 0)

size

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.