Skip to main content
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Opzioni ed esempi di configurazione del backend Google Cloud NetApp Volumes

Collaboratori netapp-aruldeepa

Scopri le opzioni di configurazione backend per Google Cloud NetApp Volumes e rivedi gli esempi di configurazione.

Opzioni di configurazione del backend

Ogni backend esegue il provisioning dei volumi in una singola regione di Google Cloud. Per creare volumi in altre regioni, è possibile definire backend aggiuntivi.

Parametro Descrizione Predefinito

version

Sempre 1

storageDriverName

Nome del driver di archiviazione

Il valore di storageDriverName deve essere specificato come "google-cloud-netapp-volumes".

backendName

(Facoltativo) Nome personalizzato del backend di archiviazione

Nome del driver + "_" + parte della chiave API

storagePools

Parametro facoltativo utilizzato per specificare i pool di archiviazione per la creazione del volume.

projectNumber

Numero di progetto dell'account Google Cloud. Il valore si trova nella home page del portale Google Cloud.

location

Posizione di Google Cloud in cui Trident crea i volumi GCNV. Quando si creano cluster Kubernetes interregionali, i volumi creati in un location può essere utilizzato nei carichi di lavoro pianificati sui nodi in più regioni di Google Cloud. Il traffico interregionale comporta un costo aggiuntivo.

apiKey

Chiave API per l'account del servizio Google Cloud con netapp.admin ruolo. Include il contenuto in formato JSON del file della chiave privata di un account di servizio Google Cloud (copiato letteralmente nel file di configurazione del backend). IL apiKey deve includere coppie chiave-valore per le seguenti chiavi: type , project_id , client_email , client_id , auth_uri , token_uri , auth_provider_x509_cert_url , E client_x509_cert_url .

nfsMountOptions

Controllo dettagliato delle opzioni di montaggio NFS.

"nfsvers=3"

limitVolumeSize

Il provisioning non riesce se la dimensione del volume richiesto è superiore a questo valore.

"" (non applicato di default)

serviceLevel

Il livello di servizio di un pool di archiviazione e dei suoi volumi. I valori sono flex , standard , premium , O extreme .

labels

Insieme di etichette arbitrarie formattate in JSON da applicare ai volumi

""

network

Rete Google Cloud utilizzata per i volumi GCNV.

debugTraceFlags

Flag di debug da utilizzare durante la risoluzione dei problemi. Esempio, {"api":false, "method":true} . Non utilizzare questa funzione a meno che non si desideri risolvere un problema e richiedere un dump dettagliato del registro.

null

nasType

Configurare la creazione di volumi NFS o SMB. Le opzioni sono nfs , smb o nullo. Impostando il valore su null, i volumi NFS vengono impostati di default.

nfs

supportedTopologies

Rappresenta un elenco di regioni e zone supportate da questo backend. Per maggiori informazioni, fare riferimento a"Utilizzare la topologia CSI" . Per esempio:
supportedTopologies:
- topology.kubernetes.io/region: asia-east1
topology.kubernetes.io/zone: asia-east1-a

Opzioni di provisioning del volume

È possibile controllare il provisioning del volume predefinito in defaults sezione del file di configurazione.

Parametro Descrizione Predefinito

exportRule

Le regole di esportazione per i nuovi volumi. Deve essere un elenco separato da virgole di qualsiasi combinazione di indirizzi IPv4.

"0.0.0.0/0"

snapshotDir

Accesso al .snapshot elenco

"true" per NFSv4 "false" per NFSv3

snapshotReserve

Percentuale di volume riservata agli snapshot

"" (accetta il valore predefinito 0)

unixPermissions

I permessi Unix dei nuovi volumi (4 cifre ottali).

""

Configurazioni di esempio

Gli esempi seguenti mostrano configurazioni di base che lasciano la maggior parte dei parametri predefiniti. Questo è il modo più semplice per definire un backend.

Configurazione minima

Questa è la configurazione minima assoluta del backend. Con questa configurazione, Trident rileva tutti i pool di archiviazione delegati a Google Cloud NetApp Volumes nella posizione configurata e posiziona casualmente i nuovi volumi su uno di questi pool. Perché nasType viene omesso, il nfs si applica l'impostazione predefinita e il backend provvederà al provisioning dei volumi NFS.

Questa configurazione è ideale quando si inizia a utilizzare Google Cloud NetApp Volumes e si provano le funzionalità, ma in pratica sarà molto probabilmente necessario fornire un ambito aggiuntivo per i volumi di cui si esegue il provisioning.

---
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
Configurazione per volumi 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
Configurazione con filtro 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
Configurazione del pool virtuale

Questa configurazione backend definisce più pool virtuali in un singolo file. I pool virtuali sono definiti nel storage sezione. Sono utili quando si hanno più pool di archiviazione che supportano diversi livelli di servizio e si desidera creare classi di archiviazione in Kubernetes che li rappresentino. Per differenziare i pool vengono utilizzate etichette virtuali. Ad esempio, nell'esempio seguente performance etichetta e serviceLevel Il tipo viene utilizzato per differenziare i pool virtuali.

È anche possibile impostare alcuni valori predefiniti da applicare a tutti i pool virtuali e sovrascrivere i valori predefiniti per i singoli pool virtuali. Nell'esempio seguente, snapshotReserve E exportRule servono come valori predefiniti per tutti i pool virtuali.

Per maggiori informazioni, fare riferimento a"Pool virtuali" .

---
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 per 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
Configurazione delle topologie supportate

Trident semplifica il provisioning dei volumi per carichi di lavoro in base alle regioni e alle zone di disponibilità. IL supportedTopologies Il blocco in questa configurazione backend viene utilizzato per fornire un elenco di regioni e zone per backend. I valori di regione e zona specificati qui devono corrispondere ai valori di regione e zona delle etichette su ciascun nodo del cluster Kubernetes. Queste regioni e zone rappresentano l'elenco dei valori consentiti che possono essere forniti in una classe di archiviazione. Per le classi di archiviazione che contengono un sottoinsieme delle regioni e delle zone fornite in un backend, Trident crea volumi nella regione e nella zona menzionate. Per maggiori informazioni, fare riferimento a"Utilizzare la topologia 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

Cosa succederà ora?

Dopo aver creato il file di configurazione del backend, eseguire il seguente comando:

kubectl create -f <backend-file>

Per verificare che il backend sia stato creato correttamente, eseguire il seguente comando:

kubectl get tridentbackendconfig

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

Se la creazione del backend fallisce, c'è qualcosa che non va nella configurazione del backend. Puoi descrivere il backend usando il kubectl get tridentbackendconfig <backend-name> comando o visualizzare i registri per determinare la causa eseguendo il seguente comando:

tridentctl logs

Dopo aver identificato e corretto il problema con il file di configurazione, puoi eliminare il backend ed eseguire nuovamente il comando create.

Definizioni delle classi di archiviazione

Quello che segue è un esempio di base StorageClass definizione che si riferisce al backend di cui sopra.

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

Definizioni di esempio utilizzando il parameter.selector campo:

Utilizzando parameter.selector puoi specificare per ciascuno StorageClass IL"piscina virtuale" che viene utilizzato per ospitare un volume. Il volume avrà gli aspetti definiti nel pool scelto.

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

Per maggiori dettagli sulle classi di archiviazione, fare riferimento a"Creare una classe di archiviazione" .

Definizioni di esempio per volumi SMB

Utilizzando nasType , node-stage-secret-name , E node-stage-secret-namespace , è possibile specificare un volume SMB e fornire le credenziali Active Directory richieste. Per il segreto della fase del nodo è possibile utilizzare qualsiasi utente/password di Active Directory con qualsiasi/nessuna autorizzazione.

Configurazione di base sullo spazio dei nomi predefinito
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"
Utilizzo di segreti diversi per ogni namespace
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}
Utilizzo di segreti diversi per 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}
Nota nasType: smb`filtri per pool che supportano volumi SMB. `nasType: nfs O nasType: null filtri per pool NFS.

Esempio di definizione di PVC

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

Per verificare se il PVC è vincolato, eseguire il seguente comando:

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