Configurare un Cloud Volumes Service per il backend di Google Cloud
Scopri come configurare NetApp Cloud Volumes Service per Google Cloud come backend per la tua installazione Trident utilizzando le configurazioni di esempio fornite.
Dettagli del driver Google Cloud
Trident fornisce il gcp-cvs driver per comunicare con il cluster. Le modalità di accesso supportate sono: ReadWriteOnce (RWO), ReadOnlyMany (ROX), ReadWriteMany (RWX), ReadWriteOncePod (RWOP).
| Autista | Protocollo | Modalità volume | Modalità di accesso supportate | Sistemi di file supportati |
|---|---|---|---|---|
|
NFS |
File system |
RWO, ROX, RWX, RWOP |
|
Scopri di più sul supporto Trident per Cloud Volumes Service per Google Cloud
Trident può creare volumi Cloud Volumes Service in uno dei due"tipi di servizio" :
-
CVS-Performance: il tipo di servizio Trident predefinito. Questo tipo di servizio ottimizzato per le prestazioni è particolarmente adatto ai carichi di lavoro di produzione che danno valore alle prestazioni. Il tipo di servizio CVS-Performance è un'opzione hardware che supporta volumi con una dimensione minima di 100 GiB. Puoi scegliere uno dei"tre livelli di servizio" :
-
standard -
premium -
extreme
-
-
CVS: Il tipo di servizio CVS fornisce un'elevata disponibilità zonale con livelli di prestazioni da limitati a moderati. Il tipo di servizio CVS è un'opzione software che utilizza pool di archiviazione per supportare volumi piccoli fino a 1 GiB. Il pool di archiviazione può contenere fino a 50 volumi, tutti i quali condividono la capacità e le prestazioni del pool. Puoi scegliere uno dei"due livelli di servizio" :
-
standardsw -
zoneredundantstandardsw
-
Per configurare e utilizzare il "Cloud Volumes Service per Google Cloud" backend, hai bisogno di quanto segue:
-
Un account Google Cloud configurato con il servizio NetApp Cloud Volumes Service
-
Numero di progetto del tuo account Google Cloud
-
Account di servizio Google Cloud con
netappcloudvolumes.adminruolo -
File chiave API per il tuo account Cloud Volumes Service
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 |
|---|---|---|
|
Sempre 1 |
|
|
Nome del driver di archiviazione |
"gcp-cvs" |
|
Nome personalizzato o backend di archiviazione |
Nome del driver + "_" + parte della chiave API |
|
Parametro facoltativo utilizzato per specificare il tipo di servizio CVS. Utilizzo |
|
|
Solo tipo di servizio CVS. Parametro facoltativo utilizzato per specificare i pool di archiviazione per la creazione del volume. |
|
|
Numero di progetto dell'account Google Cloud. Il valore si trova nella home page del portale Google Cloud. |
|
|
Obbligatorio se si utilizza una rete VPC condivisa. In questo scenario, |
|
|
La regione di Google Cloud in cui Trident crea i volumi Cloud Volumes Service . Quando si creano cluster Kubernetes interregionali, i volumi creati in un |
|
|
Chiave API per l'account del servizio Google Cloud con |
|
|
URL proxy se è necessario un server proxy per connettersi all'account CVS. Il server proxy può essere un proxy HTTP o un proxy HTTPS. Per un proxy HTTPS, la convalida del certificato viene ignorata per consentire l'utilizzo di certificati autofirmati nel server proxy. I server proxy con autenticazione abilitata non sono supportati. |
|
|
Controllo dettagliato delle opzioni di montaggio NFS. |
"nfsvers=3" |
|
Il provisioning non riesce se la dimensione del volume richiesto è superiore a questo valore. |
"" (non applicato di default) |
|
Il livello di servizio CVS-Performance o CVS per i nuovi volumi. I valori CVS-Performance sono |
L'impostazione predefinita di CVS-Performance è "standard". L'impostazione predefinita di CVS è "standardsw". |
|
Rete Google Cloud utilizzata per i volumi Cloud Volumes Service . |
"predefinito" |
|
Flag di debug da utilizzare durante la risoluzione dei problemi. Esempio, |
null |
|
Per abilitare l'accesso tra regioni, la definizione StorageClass per |
Opzioni di provisioning del volume
È possibile controllare il provisioning del volume predefinito in defaults sezione del file di configurazione.
| Parametro | Descrizione | Predefinito |
|---|---|---|
|
Le regole di esportazione per i nuovi volumi. Deve essere un elenco separato da virgole di qualsiasi combinazione di indirizzi IPv4 o subnet IPv4 in notazione CIDR. |
"0.0.0.0/0" |
|
Accesso al |
"falso" |
|
Percentuale di volume riservata agli snapshot |
"" (accetta il valore predefinito CVS pari a 0) |
|
Le dimensioni dei nuovi volumi. Il requisito minimo per le prestazioni CVS è 100 GiB. Il minimo CVS è 1 GiB. |
Il tipo di servizio CVS-Performance è impostato per impostazione predefinita su "100GiB". Il tipo di servizio CVS non imposta un valore predefinito ma richiede almeno 1 GiB. |
Esempi di tipi di servizio CVS-Performance
Gli esempi seguenti forniscono configurazioni di esempio per il tipo di servizio CVS-Performance.
Esempio 1: Configurazione minima
Questa è la configurazione minima del backend che utilizza il tipo di servizio CVS-Performance predefinito con il livello di servizio "standard" predefinito.
---
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
Esempio 2: Configurazione del livello di servizio
Questo esempio illustra le opzioni di configurazione del backend, tra cui il livello di servizio e i valori predefiniti del 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
Esempio 3: Configurazione del pool virtuale
Questo campione utilizza storage per configurare pool virtuali e StorageClasses che rimandano ad essi. Fare riferimento aDefinizioni delle classi di archiviazione per vedere come sono state definite le classi di archiviazione.
Qui vengono impostati valori predefiniti specifici per tutti i pool virtuali, che impostano il snapshotReserve al 5% e il exportRule a 0.0.0.0/0. I pool virtuali sono definiti nel storage sezione. Ogni singolo pool virtuale definisce il proprio serviceLevel e alcuni pool sovrascrivono i valori predefiniti. Le etichette dei pool virtuali sono state utilizzate per differenziare i pool in base a performance E 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
Definizioni delle classi di archiviazione
Le seguenti definizioni StorageClass si applicano all'esempio di configurazione del pool virtuale. Utilizzando parameters.selector , è possibile specificare per ogni StorageClass il pool virtuale utilizzato per ospitare un volume. Il volume avrà gli aspetti definiti nel pool scelto.
Esempio di classe di archiviazione
---
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
-
Il primo StorageClass(
cvs-extreme-extra-protection) corrisponde al primo pool virtuale. Questa è l'unica piscina che offre prestazioni estreme con una riserva istantanea del 10%. -
L'ultima StorageClass(
cvs-extra-protection) richiama qualsiasi pool di archiviazione che fornisca una riserva di snapshot del 10%. Trident decide quale pool virtuale selezionare e garantisce che venga soddisfatto il requisito di riserva degli snapshot.
Esempi di tipi di servizio CVS
Gli esempi seguenti forniscono configurazioni di esempio per il tipo di servizio CVS.
Esempio 1: Configurazione minima
Questa è la configurazione minima del backend utilizzando storageClass per specificare il tipo di servizio CVS e quello predefinito standardsw livello di servizio.
---
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
Esempio 2: Configurazione del pool di archiviazione
Questa configurazione di backend di esempio utilizza storagePools per configurare un pool di archiviazione.
---
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
Cosa succederà ora?
Dopo aver creato il file di configurazione del backend, eseguire il seguente comando:
tridentctl create backend -f <backend-file>
Se la creazione del backend fallisce, c'è qualcosa che non va nella configurazione del backend. È possibile 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, è possibile eseguire nuovamente il comando create.