Configurare un Cloud Volumes Service per il backend di Google Cloud
Scopri come configurare NetApp Cloud Volumes Service per Google Cloud come back-end per l'installazione di Trident utilizzando le configurazioni di esempio fornite.
Dettagli del driver di Google Cloud
Trident fornisce al gcp-cvs
driver la comunicazione con il cluster. Le modalità di accesso supportate sono: ReadWriteOnce (RWO), ReadOnlyMany (ROX), ReadWriteMany (RWX), ReadWriteOncePod (RWOP).
Driver | Protocollo | VolumeMode | Modalità di accesso supportate | File system supportati |
---|---|---|---|---|
|
NFS |
Filesystem |
RWO, ROX, RWX, RWOP |
|
Scopri il 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 performance è più adatto per i carichi di lavoro di produzione che apprezzano le performance. Il tipo di servizio CVS-Performance è un'opzione hardware che supporta volumi con una dimensione minima di 100 GiB. È possibile scegliere tra"tre livelli di servizio":
-
standard
-
premium
-
extreme
-
-
CVS: Il tipo di servizio CVS offre un'elevata disponibilità zonale con livelli di performance da limitati a moderati. Il tipo di servizio CVS è un'opzione software che utilizza pool di storage per supportare volumi di dimensioni pari a 1 GiB. Il pool di storage può contenere fino a 50 volumi in cui tutti i volumi condividono la capacità e le performance del pool. È possibile scegliere tra"due livelli di servizio":
-
standardsw
-
zoneredundantstandardsw
-
Per configurare e utilizzare il "Cloud Volumes Service per Google Cloud" backend, è necessario quanto segue:
-
Un account Google Cloud configurato con NetApp Cloud Volumes Service
-
Numero di progetto dell'account Google Cloud
-
Account di servizio Google Cloud con il
netappcloudvolumes.admin
ruolo -
File delle chiavi API per l'account Cloud Volumes Service
Opzioni di configurazione back-end
Ogni back-end esegue il provisioning dei volumi in una singola area di Google Cloud. Per creare volumi in altre regioni, è possibile definire backend aggiuntivi.
Parametro | Descrizione | Predefinito |
---|---|---|
|
Sempre 1 |
|
|
Nome del driver di storage |
"gcp-cvs" |
|
Nome personalizzato o backend dello storage |
Nome del driver + "_" + parte della chiave API |
|
Parametro facoltativo utilizzato per specificare il tipo di servizio CVS. Utilizzare |
|
|
Solo tipo di servizio CVS. Parametro facoltativo utilizzato per specificare i pool di storage per la creazione di volumi. |
|
|
Numero di progetto dell'account Google Cloud. Il valore si trova nella home page del portale Google Cloud. |
|
|
Necessario se si utilizza una rete VPC condivisa. In questo scenario, |
|
|
La regione Google Cloud in cui Trident crea Cloud Volumes Service Volumes. Quando si creano cluster Kubernetes tra aree, i volumi creati in un |
|
|
Chiave API per l'account del servizio Google Cloud con il |
|
|
URL del proxy se il server proxy ha richiesto di 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 le dimensioni del volume richiesto sono superiori a questo valore. |
"" (non applicato per impostazione predefinita) |
|
Livello di servizio CVS-Performance o CVS per i nuovi volumi. I valori CVS-Performance sono |
CVS-Performance (prestazioni CVS) è "standard". Il valore predefinito di CVS è "standardsw". |
|
Rete Google Cloud utilizzata per i volumi Cloud Volumes Service. |
"predefinito" |
|
Flag di debug da utilizzare per la risoluzione dei problemi. Esempio, |
nullo |
|
Per abilitare l'accesso tra aree, la definizione di StorageClass per |
Opzioni di provisioning dei volumi
È possibile controllare il provisioning del volume predefinito nella 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 nella notazione CIDR. |
"0.0.0.0/0" |
|
Accesso alla |
"falso" |
|
Percentuale di volume riservato agli snapshot |
"" (accettare CVS come valore predefinito 0) |
|
Le dimensioni dei nuovi volumi. Performance CVS minima: 100 GiB. CVS minimo: 1 GiB. |
Per impostazione predefinita, il tipo di servizio CVS-Performance è "100GiB". Il tipo di servizio CVS non imposta un valore predefinito, ma richiede un minimo di 1 GiB. |
Esempi di tipo di servizio CVS-Performance
I seguenti esempi forniscono configurazioni di esempio per il tipo di servizio CVS-Performance.
Esempio 1: Configurazione minima
Questa è la configurazione di backend minima 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
In questo esempio vengono illustrate le opzioni di configurazione back-end, inclusi 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 esempio utilizza storage
per configurare i pool virtuali e i StorageClasses
relativi riferimenti. Fare riferimento a Definizioni delle classi di storage per scoprire come sono state definite le classi di storage.
In questo caso, vengono impostati valori predefiniti specifici per tutti i pool virtuali, che impostano il snapshotReserve
valore a 5% e il exportRule
valore a 0,0.0,0/0. I pool virtuali sono definiti nella 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 storage
Le seguenti definizioni di StorageClass si applicano all'esempio di configurazione del pool virtuale. Utilizzando parameters.selector
, è possibile specificare per ciascuna classe StorageClass il pool virtuale utilizzato per ospitare un volume. Gli aspetti del volume saranno definiti nel pool selezionato.
Esempio di classe di storage
---
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 prima StorageClass (
cvs-extreme-extra-protection
) mappa al primo pool virtuale. Questo è l'unico pool che offre performance estreme con una riserva di snapshot del 10%. -
L'ultima StorageClass (
cvs-extra-protection
) richiama qualsiasi pool di archiviazione che fornisce una riserva snapshot del 10%. Trident decide quale pool virtuale è selezionato e garantisce che venga soddisfatto il requisito di riserva degli snapshot.
Esempi di tipo di servizio CVS
I seguenti esempi forniscono configurazioni di esempio per il tipo di servizio CVS.
Esempio 1: Configurazione minima
Questa è la configurazione back-end minima che utilizza storageClass
per specificare il tipo di servizio CVS e il livello di servizio predefinito standardsw
.
---
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 storage
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
Quali sono le prossime novità?
Dopo aver creato il file di configurazione back-end, eseguire il seguente comando:
tridentctl create backend -f <backend-file>
Se la creazione del backend non riesce, si è verificato un errore nella configurazione del backend. È possibile visualizzare i log 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.