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.

Options et exemples de configuration du backend Google Cloud NetApp Volumes .

Contributeurs netapp-aruldeepa

Découvrez les options de configuration backend pour Google Cloud NetApp Volumes et consultez des exemples de configuration.

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

La valeur de storageDriverName doit être spécifié comme « google-cloud-netapp-volumes ».

backendName

(Facultatif) Nom personnalisé du système de stockage

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

storagePools

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.

location

L'emplacement Google Cloud où Trident crée les volumes GCNV. Lors de la création de clusters Kubernetes interrégionaux, les volumes créés dans un location 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 netapp.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). Le apiKey doit inclure des paires clé-valeur pour les clés suivantes : type , project_id , client_email , client_id , auth_uri , token_uri , auth_provider_x509_cert_url , et client_x509_cert_url .

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 d'un pool de stockage et ses volumes. Les valeurs sont flex , standard , premium , ou extreme .

labels

Ensemble d'étiquettes arbitraires au format JSON à appliquer aux volumes

""

network

Le réseau Google Cloud est utilisé pour les volumes GCNV.

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

nasType

Configurer la création de volumes NFS ou SMB. Les options sont nfs , smb ou nul. La valeur nulle correspond par défaut aux volumes NFS.

nfs

supportedTopologies

Représente une liste des régions et zones prises en charge par ce serveur. Pour plus d'informations, veuillez consulter"Utiliser la topologie CSI" . Par exemple:
supportedTopologies:
- topology.kubernetes.io/region: asia-east1
topology.kubernetes.io/zone: asia-east1-a

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 d'adresses IPv4, séparées par des virgules, pouvant contenir n'importe quelle combinaison d'adresses IPv4.

"0.0.0.0/0"

snapshotDir

L'accès à .snapshot annuaire

« Vrai » pour NFSv4, « Faux » pour NFSv3

snapshotReserve

Pourcentage du volume réservé aux instantanés

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

unixPermissions

Les permissions Unix des nouveaux volumes (4 chiffres octaux).

""

Exemples de configurations

Les exemples suivants présentent des configurations de base qui laissent la plupart des paramètres par défaut. Voici la manière la plus simple de définir un backend.

Configuration minimale

Il s'agit de la configuration minimale absolue du backend. Avec cette configuration, Trident détecte tous vos pools de stockage délégués à Google Cloud NetApp Volumes dans l'emplacement configuré et place les nouveaux volumes sur l'un de ces pools de manière aléatoire. Parce que nasType est omis, le nfs La valeur par défaut s'applique et le système dorsal provisionnera les volumes NFS.

Cette configuration est idéale lorsque vous débutez avec Google Cloud NetApp Volumes et que vous faites des essais, mais en pratique, vous devrez probablement définir une portée supplémentaire pour les volumes que vous provisionnez.

---
apiVersion: v1
kind: Secret
metadata:
  name: backend-tbc-gcnv-secret
type: Opaque
stringData:
  private_key_id: f2cb6ed6d7cc10c453f7d3406fc700c5df0ab9ec
  private_key: |
    -----BEGIN PRIVATE KEY-----\n
    znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m\n
    znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m\n
    znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m\n
    XsYg6gyxy4zq7OlwWgLwGa==\n
    -----END PRIVATE KEY-----\n

---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-gcnv
spec:
  version: 1
  storageDriverName: google-cloud-netapp-volumes
  projectNumber: "123455380079"
  location: europe-west6
  serviceLevel: premium
  apiKey:
    type: service_account
    project_id: my-gcnv-project
    client_email: myproject-prod@my-gcnv-project.iam.gserviceaccount.com
    client_id: "103346282737811234567"
    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/myproject-prod%40my-gcnv-project.iam.gserviceaccount.com
  credentials:
    name: backend-tbc-gcnv-secret
Configuration pour les volumes SMB
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-gcnv1
  namespace: trident
spec:
  version: 1
  storageDriverName: google-cloud-netapp-volumes
  projectNumber: "123456789"
  location: asia-east1
  serviceLevel: flex
  nasType: smb
  apiKey:
    type: service_account
    project_id: cloud-native-data
    client_email: trident-sample@cloud-native-data.iam.gserviceaccount.com
    client_id: "123456789737813416734"
    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/trident-sample%40cloud-native-data.iam.gserviceaccount.com
  credentials:
    name: backend-tbc-gcnv-secret
Configuration avec filtre StoragePools
---
apiVersion: v1
kind: Secret
metadata:
  name: backend-tbc-gcnv-secret
type: Opaque
stringData:
  private_key_id: f2cb6ed6d7cc10c453f7d3406fc700c5df0ab9ec
  private_key: |
    -----BEGIN PRIVATE KEY-----
    znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
    znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
    znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
    XsYg6gyxy4zq7OlwWgLwGa==
    -----END PRIVATE KEY-----

---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-gcnv
spec:
  version: 1
  storageDriverName: google-cloud-netapp-volumes
  projectNumber: "123455380079"
  location: europe-west6
  serviceLevel: premium
  storagePools:
    - premium-pool1-europe-west6
    - premium-pool2-europe-west6
  apiKey:
    type: service_account
    project_id: my-gcnv-project
    client_email: myproject-prod@my-gcnv-project.iam.gserviceaccount.com
    client_id: "103346282737811234567"
    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/myproject-prod%40my-gcnv-project.iam.gserviceaccount.com
  credentials:
    name: backend-tbc-gcnv-secret
Configuration du pool virtuel

Cette configuration backend définit plusieurs pools virtuels dans un seul fichier. Les pools virtuels sont définis dans le storage section. Elles sont utiles lorsque vous disposez de plusieurs pools de stockage prenant en charge différents niveaux de service et que vous souhaitez créer des classes de stockage dans Kubernetes qui les représentent. Les étiquettes des pools virtuels servent à différencier les pools. Par exemple, dans l'exemple ci-dessous performance étiquette et serviceLevel Le type est utilisé pour différencier les pools virtuels.

Vous pouvez également définir des valeurs par défaut applicables à tous les pools virtuels et remplacer les valeurs par défaut de chaque pool virtuel. Dans l'exemple suivant, snapshotReserve et exportRule servent de valeurs par défaut pour tous les pools virtuels.

Pour plus d'informations, veuillez consulter"Piscines virtuelles" .

---
apiVersion: v1
kind: Secret
metadata:
  name: backend-tbc-gcnv-secret
type: Opaque
stringData:
  private_key_id: f2cb6ed6d7cc10c453f7d3406fc700c5df0ab9ec
  private_key: |
    -----BEGIN PRIVATE KEY-----
    znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
    znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
    znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
    znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
    XsYg6gyxy4zq7OlwWgLwGa==
    -----END PRIVATE KEY-----

---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-gcnv
spec:
  version: 1
  storageDriverName: google-cloud-netapp-volumes
  projectNumber: "123455380079"
  location: europe-west6
  apiKey:
    type: service_account
    project_id: my-gcnv-project
    client_email: myproject-prod@my-gcnv-project.iam.gserviceaccount.com
    client_id: "103346282737811234567"
    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/myproject-prod%40my-gcnv-project.iam.gserviceaccount.com
  credentials:
    name: backend-tbc-gcnv-secret
  defaults:
    snapshotReserve: "10"
    exportRule: 10.0.0.0/24
  storage:
    - labels:
        performance: extreme
      serviceLevel: extreme
      defaults:
        snapshotReserve: "5"
        exportRule: 0.0.0.0/0
    - labels:
        performance: premium
      serviceLevel: premium
    - labels:
        performance: standard
      serviceLevel: standard
Identité cloud pour GKE
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-gcp-gcnv
spec:
  version: 1
  storageDriverName: google-cloud-netapp-volumes
  projectNumber: '012345678901'
  network: gcnv-network
  location: us-west2
  serviceLevel: Premium
  storagePool: pool-premium1
Configuration des topologies prises en charge

Trident facilite la mise à disposition de volumes pour les charges de travail en fonction des régions et des zones de disponibilité. Le supportedTopologies Dans cette configuration backend, le bloc block sert à fournir une liste de régions et de zones par backend. Les valeurs de région et de zone spécifiées ici doivent correspondre aux valeurs de région et de zone des étiquettes de chaque nœud du cluster Kubernetes. Ces régions et zones représentent la liste des valeurs autorisées qui peuvent être fournies dans une classe de stockage. Pour les classes de stockage qui contiennent un sous-ensemble des régions et zones fournies dans un backend, Trident crée des volumes dans la région et la zone mentionnées. Pour plus d'informations, veuillez consulter"Utiliser la topologie CSI" .

---
version: 1
storageDriverName: google-cloud-netapp-volumes
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: asia-east1
serviceLevel: flex
supportedTopologies:
  - topology.kubernetes.io/region: asia-east1
    topology.kubernetes.io/zone: asia-east1-a
  - topology.kubernetes.io/region: asia-east1
    topology.kubernetes.io/zone: asia-east1-b

Quelle est la prochaine étape ?

Après avoir créé le fichier de configuration du backend, exécutez la commande suivante :

kubectl create -f <backend-file>

Pour vérifier que le backend a bien été créé, exécutez la commande suivante :

kubectl get tridentbackendconfig

NAME               BACKEND NAME       BACKEND UUID                           PHASE   STATUS
backend-tbc-gcnv   backend-tbc-gcnv   b2fd1ff9-b234-477e-88fd-713913294f65   Bound   Success

Si la création du backend échoue, c'est qu'il y a un problème avec la configuration du backend. Vous pouvez décrire le backend en utilisant le kubectl get tridentbackendconfig <backend-name> Vous pouvez également 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 supprimer le backend et exécuter à nouveau la commande de création.

Définitions des classes de stockage

Voici un exemple de base StorageClass définition qui fait référence au backend ci-dessus.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gcnv-nfs-sc
provisioner: csi.trident.netapp.io
parameters:
  backendType: "google-cloud-netapp-volumes"

Exemples de définitions utilisant parameter.selector champ:

En utilisant parameter.selector vous pouvez spécifier pour chaque StorageClass le"piscine virtuelle" qui sert à héberger un volume. Le volume comprendra les aspects définis dans le pool choisi.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: extreme-sc
provisioner: csi.trident.netapp.io
parameters:
  selector: performance=extreme
  backendType: google-cloud-netapp-volumes

---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: premium-sc
provisioner: csi.trident.netapp.io
parameters:
  selector: performance=premium
  backendType: google-cloud-netapp-volumes

---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: standard-sc
provisioner: csi.trident.netapp.io
parameters:
  selector: performance=standard
  backendType: google-cloud-netapp-volumes

Pour plus de détails sur les classes de stockage, veuillez consulter"Créer une classe de stockage" .

Exemples de définitions pour les volumes SMB

En utilisant nasType , node-stage-secret-name , et node-stage-secret-namespace Vous pouvez spécifier un volume SMB et fournir les informations d'identification Active Directory requises. N'importe quel nom d'utilisateur/mot de passe Active Directory, avec ou sans autorisations, peut être utilisé comme secret de l'étape du nœud.

Configuration de base sur l'espace de noms par défaut
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gcnv-sc-smb
provisioner: csi.trident.netapp.io
parameters:
  backendType: "google-cloud-netapp-volumes"
  trident.netapp.io/nasType: "smb"
  csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
  csi.storage.k8s.io/node-stage-secret-namespace: "default"
Utilisation de secrets différents par espace de noms
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gcnv-sc-smb
provisioner: csi.trident.netapp.io
parameters:
  backendType: "google-cloud-netapp-volumes"
  trident.netapp.io/nasType: "smb"
  csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
  csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
Utiliser différents secrets par volume
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gcnv-sc-smb
provisioner: csi.trident.netapp.io
parameters:
  backendType: "google-cloud-netapp-volumes"
  trident.netapp.io/nasType: "smb"
  csi.storage.k8s.io/node-stage-secret-name: ${pvc.name}
  csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
Remarque nasType: smb`filtres pour les pools prenant en charge les volumes SMB. `nasType: nfs ou nasType: null Filtres pour les pools NFS.

Exemple de définition du PVC

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: gcnv-nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 100Gi
  storageClassName: gcnv-nfs-sc

Pour vérifier si le PVC est lié, exécutez la commande suivante :

kubectl get pvc gcnv-nfs-pvc

NAME          STATUS   VOLUME                                    CAPACITY  ACCESS MODES   STORAGECLASS AGE
gcnv-nfs-pvc  Bound    pvc-b00f2414-e229-40e6-9b16-ee03eb79a213  100Gi     RWX            gcnv-nfs-sc  1m