Configurare un CVS per il backend GCP
Scopri come configurare NetApp Cloud Volumes Service (CVS) per la piattaforma cloud Google (GCP) come back-end per l'installazione di Astra Trident utilizzando le configurazioni di esempio fornite.
NetApp Cloud Volumes Service per Google Cloud non supporta volumi CVS-Performance di dimensioni inferiori a 100 GiB o volumi CVS di dimensioni inferiori a 300 GiB. Astra Trident crea automaticamente volumi di dimensioni minime se il volume richiesto è inferiore alla dimensione minima. |
Per configurare e utilizzare "Cloud Volumes Service per Google Cloud" back-end, sono necessari i seguenti elementi:
-
Un account Google Cloud configurato con NetApp CVS
-
Numero di progetto dell'account Google Cloud
-
Account di servizio Google Cloud con
netappcloudvolumes.admin
ruolo -
File delle chiavi API per l'account del servizio CVS
Astra Trident ora include il supporto per volumi più piccoli con l'impostazione predefinita "Tipo di servizio CVS su GCP". Per i backend creati con storageClass=software
, I volumi avranno ora una dimensione di provisioning minima di 300 GiB. CVS attualmente fornisce questa funzione in disponibilità controllata e non fornisce supporto tecnico. Gli utenti devono iscriversi per accedere ai volumi inferiori a 1 TiB "qui". NetApp consiglia ai clienti di consumare volumi inferiori a 1 TiB per carichi di lavoro non in produzione.
Quando si implementano backend utilizzando il tipo di servizio CVS predefinito (storageClass=software ), gli utenti devono ottenere l'accesso alla funzione volumi sub-1TiB su GCP per i numeri di progetto e gli ID progetto in questione. Questo è necessario per Astra Trident per eseguire il provisioning di volumi inferiori a 1 TiB. In caso contrario, le creazioni di volumi non verranno superate per PVC inferiori a 600 GiB. Ottenere l'accesso a volumi inferiori a 1 TiB utilizzando "questo modulo".
|
I volumi creati da Astra Trident per il livello di servizio CVS predefinito verranno forniti come segue:
-
I PVC di dimensioni inferiori a 300 GiB determinano la creazione di un volume CVS da 300 GiB da parte di Astra Trident.
-
I PVC compresi tra 300 GiB e 600 GiB determineranno la creazione di un volume CVS della dimensione richiesta da parte di Astra Trident.
-
I PVC compresi tra 600 GiB e 1 TIB determineranno la creazione di un volume CVS 1TiB da parte di Astra Trident.
-
I PVC superiori a 1 TIB determineranno la creazione da parte di Astra Trident di un volume CVS della dimensione richiesta.
Opzioni di configurazione back-end
Per le opzioni di configurazione del backend, consultare la tabella seguente:
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 |
|
Tipo di storage. Scegliere tra |
|
|
Numero di progetto dell'account Google Cloud. Il valore si trova nella home page del portale Google Cloud. |
|
|
Regione dell'account CVS. È la regione in cui il back-end eseguirà il provisioning dei volumi. |
|
|
Chiave API per l'account del servizio Google Cloud con |
|
|
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) |
|
Il livello di servizio CVS per i nuovi volumi. I valori sono "standard", "premium" e "Extreme". |
"standard" |
|
Rete GCP utilizzata per volumi CVS |
"predefinito" |
|
Flag di debug da utilizzare per la risoluzione dei problemi. Esempio, |
nullo |
Se si utilizza una rete VPC condivisa, entrambi projectNumber
e. hostProjectNumber
deve essere specificato. In tal caso, projectNumber
è il progetto di servizio, e. hostProjectNumber
è il progetto host.
Il apiRegion
Rappresenta la regione GCP in cui Astra Trident crea volumi CVS. Durante la creazione di cluster Kubernetes a più aree, i volumi CVS vengono creati in un apiRegion
Può essere utilizzato nei carichi di lavoro pianificati su nodi in più regioni GCP. Tenere presente che il traffico interregionale comporta un costo aggiuntivo.
|
L'integrazione di Astra Trident con il tipo di servizio CVS di base su Google Cloud è una funzionalità beta, non destinata ai carichi di lavoro di produzione. Trident è completamente supportato con il tipo di servizio CVS-Performance e lo utilizza per impostazione predefinita. |
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.
Per impostazione predefinita, è possibile controllare il provisioning di ciascun volume specificando le seguenti opzioni in una sezione speciale del file di configurazione. Vedere gli esempi di configurazione riportati di seguito.
Parametro | Descrizione | Predefinito |
---|---|---|
|
Regola o regole di esportazione per i nuovi volumi |
"0.0.0.0/0" |
|
Accesso a |
"falso" |
|
Percentuale di volume riservato agli snapshot |
"" (accettare CVS come valore predefinito 0) |
|
Le dimensioni dei nuovi volumi |
"100 Gi" |
Il exportRule
Il valore deve essere un elenco separato da virgole di qualsiasi combinazione di indirizzi IPv4 o subnet IPv4 nella notazione CIDR.
Per tutti i volumi creati su un backend CVS Google Cloud, Trident copia tutte le etichette presenti su un pool di storage nel volume di storage al momento del provisioning. Gli amministratori dello storage possono definire le etichette per ogni pool di storage e raggruppare tutti i volumi creati in un pool di storage. In questo modo è possibile differenziare i volumi in base a una serie di etichette personalizzabili fornite nella configurazione di back-end. |
Esempio 1: Configurazione minima
Questa è la configurazione backend minima assoluta.
{ "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-----\n", "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 tipo di servizio CVS di base
Questo esempio mostra una definizione di back-end che utilizza il tipo di servizio CVS di base, che è destinato ai carichi di lavoro generici e fornisce performance leggere/moderate, insieme ad un'elevata disponibilità zonale.
{ "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-----\n", "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 3: Configurazione a livello di servizio singolo
Questo esempio mostra un file backend che applica gli stessi aspetti a tutti gli storage creati da Astra Trident nella regione di Google Cloud us-west2. Questo esempio mostra anche l'utilizzo di proxyURL
nel file di configurazione back-end.
{ "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-----\n", "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 4: Configurazione del pool di storage virtuale
Questo esempio mostra il file di definizione back-end configurato con i pool di storage virtuali insieme a. StorageClasses
che fanno riferimento a loro.
Nel file di definizione del backend di esempio mostrato di seguito, vengono impostati valori predefiniti specifici per tutti i pool di storage, che impostano snapshotReserve
al 5% e a. exportRule
a 0.0.0.0/0. I pool di storage virtuali sono definiti in storage
sezione. In questo esempio, ogni singolo pool di storage imposta il proprio `serviceLevel`e alcuni pool sovrascrivono i valori predefiniti.
{ "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-----\n", "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" } ] }
Le seguenti definizioni di StorageClass si riferiscono ai pool di storage di cui sopra. Utilizzando parameters.selector
È possibile specificare per ogni StorageClass il pool virtuale utilizzato per ospitare un volume. Gli aspetti del volume saranno definiti nel pool selezionato.
Il primo StorageClass (cvs-extreme-extra-protection
) viene mappato al primo pool di storage 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 storage che fornisce una riserva di snapshot del 10%. Astra Trident decide quale pool di storage virtuale è selezionato e garantisce che il requisito di riserva snapshot sia soddisfatto.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-extra-protection provisioner: netapp.io/trident parameters: selector: "performance=extreme; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-standard-protection provisioner: netapp.io/trident parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium-extra-protection provisioner: netapp.io/trident parameters: selector: "performance=premium; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium provisioner: netapp.io/trident parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-standard provisioner: netapp.io/trident parameters: selector: "performance=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extra-protection provisioner: netapp.io/trident parameters: selector: "protection=extra" allowVolumeExpansion: true
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.