Configurar un Cloud Volumes Service para el backend de Google Cloud
Aprenda a configurar NetApp Cloud Volumes Service para Google Cloud como backend para su instalación de Trident utilizando las configuraciones de ejemplo proporcionadas.
Detalles del controlador de Google Cloud
Trident proporciona el gcp-cvs controlador para comunicarse con el clúster. Los modos de acceso compatibles son: ReadWriteOnce (RWO), ReadOnlyMany (ROX), ReadWriteMany (RWX), ReadWriteOncePod (RWOP).
| Conductor | Protocolo | modo de volumen | Modos de acceso compatibles | Sistemas de archivos compatibles |
|---|---|---|---|---|
|
Sistema Nacional de Archivos |
Sistema de archivos |
RWO, ROX, RWX, RWOP |
|
Obtén más información sobre la compatibilidad de Trident con Cloud Volumes Service para Google Cloud.
Trident puede crear volúmenes de Cloud Volumes Service en uno de dos"tipos de servicio" :
-
CVS-Performance: El tipo de servicio Trident predeterminado. Este tipo de servicio optimizado para el rendimiento es el más adecuado para cargas de trabajo de producción que valoran el rendimiento. El tipo de servicio CVS-Performance es una opción de hardware que admite volúmenes con un tamaño mínimo de 100 GiB. Puedes elegir uno de"tres niveles de servicio" :
-
standard -
premium -
extreme
-
-
CVS: El tipo de servicio CVS proporciona una alta disponibilidad zonal con niveles de rendimiento limitados a moderados. El tipo de servicio CVS es una opción de software que utiliza grupos de almacenamiento para admitir volúmenes de tan solo 1 GiB. El grupo de almacenamiento puede contener hasta 50 volúmenes, donde todos los volúmenes comparten la capacidad y el rendimiento del grupo. Puedes elegir uno de"dos niveles de servicio" :
-
standardsw -
zoneredundantstandardsw
-
Para configurar y usar el "Cloud Volumes Service para Google Cloud" Para el backend, necesitas lo siguiente:
-
Una cuenta de Google Cloud configurada con el servicio NetApp Cloud Volumes Service.
-
Número de proyecto de tu cuenta de Google Cloud
-
cuenta de servicio de Google Cloud con la
netappcloudvolumes.adminrole -
Archivo de clave API para su cuenta de Cloud Volumes Service
Opciones de configuración del backend
Cada backend aprovisiona volúmenes en una única región de Google Cloud. Para crear volúmenes en otras regiones, puede definir backends adicionales.
| Parámetro | Descripción | Por defecto |
|---|---|---|
|
Siempre 1 |
|
|
Nombre del controlador de almacenamiento |
"gcp-cvs" |
|
Nombre personalizado o el backend de almacenamiento |
Nombre del controlador + "_" + parte de la clave API |
|
Parámetro opcional utilizado para especificar el tipo de servicio CVS. Usar |
|
|
Solo servicio de tipo CVS. Parámetro opcional utilizado para especificar los grupos de almacenamiento para la creación de volúmenes. |
|
|
Número de proyecto de la cuenta de Google Cloud. El valor se encuentra en la página principal del portal de Google Cloud. |
|
|
Requerido si se utiliza una red VPC compartida. En este escenario, |
|
|
La región de Google Cloud donde Trident crea volúmenes de Cloud Volumes Service . Al crear clústeres de Kubernetes entre regiones, los volúmenes creados en un |
|
|
clave API para la cuenta de servicio de Google Cloud con la |
|
|
URL del proxy si se requiere un servidor proxy para conectarse a la cuenta de CVS. El servidor proxy puede ser un proxy HTTP o un proxy HTTPS. En el caso de un proxy HTTPS, se omite la validación del certificado para permitir el uso de certificados autofirmados en el servidor proxy. No se admiten servidores proxy con autenticación habilitada. |
|
|
Control preciso de las opciones de montaje NFS. |
"nfsvers=3" |
|
Fallará el aprovisionamiento si el tamaño de volumen solicitado supera este valor. |
" (no se aplica por defecto) |
|
El nivel de servicio CVS-Performance o CVS para nuevos volúmenes. Los valores de rendimiento de CVS son |
El valor predeterminado de CVS-Performance es "estándar". El valor predeterminado de CVS es "standardsw". |
|
Red de Google Cloud utilizada para los volúmenes del Cloud Volumes Service . |
"por defecto" |
|
Indicadores de depuración para usar al solucionar problemas. Ejemplo, |
nulo |
|
Para habilitar el acceso entre regiones, su definición de StorageClass para |
Opciones de aprovisionamiento de volumen
Puedes controlar el aprovisionamiento de volúmenes predeterminado en el defaults sección del archivo de configuración.
| Parámetro | Descripción | Por defecto |
|---|---|---|
|
Las reglas de exportación para nuevos volúmenes. Debe ser una lista separada por comas de cualquier combinación de direcciones IPv4 o subredes IPv4 en notación CIDR. |
"0.0.0.0/0" |
|
Acceso a la |
"FALSO" |
|
Porcentaje de volumen reservado para instantáneas |
"" (aceptar el valor predeterminado de CVS de 0) |
|
El tamaño de los nuevos volúmenes. El rendimiento mínimo de CVS es de 100 GiB. El tamaño mínimo de CVS es de 1 GiB. |
El tipo de servicio CVS-Performance tiene como valor predeterminado "100 GiB". El tipo de servicio CVS no establece un valor predeterminado, pero requiere un mínimo de 1 GiB. |
Ejemplos de tipos de servicio de CVS-Performance
Los siguientes ejemplos proporcionan configuraciones de muestra para el tipo de servicio CVS-Performance.
Ejemplo 1: Configuración mínima
Esta es la configuración mínima de backend utilizando el tipo de servicio CVS-Performance predeterminado con el nivel de servicio "estándar" predeterminado.
---
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
Ejemplo 2: Configuración del nivel de servicio
Este ejemplo ilustra las opciones de configuración del backend, incluyendo el nivel de servicio y los valores predeterminados de volumen.
---
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
Ejemplo 3: Configuración de grupo virtual
Esta muestra utiliza storage para configurar grupos virtuales y el StorageClasses que hacen referencia a ellos. Referirse aDefiniciones de clases de almacenamiento para ver cómo se definieron las clases de almacenamiento.
Aquí se establecen valores predeterminados específicos para todos los grupos virtuales, que definen snapshotReserve al 5% y el exportRule a 0.0.0.0/0. Los grupos virtuales se definen en el storage sección. Cada grupo virtual individual define su propio serviceLevel , y algunos grupos sobrescriben los valores predeterminados. Se utilizaron etiquetas de piscinas virtuales para diferenciar las piscinas en función de performance y 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
Definiciones de clases de almacenamiento
Las siguientes definiciones de StorageClass se aplican al ejemplo de configuración de grupo virtual. Usando parameters.selector , puede especificar para cada StorageClass el grupo virtual utilizado para alojar un volumen. El volumen tendrá los aspectos definidos en el pool elegido.
Ejemplo de clase de almacenamiento
---
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 primera clase de almacenamiento(
cvs-extreme-extra-protection) se asigna al primer grupo virtual. Esta es la única piscina que ofrece un rendimiento extremo con una reserva instantánea del 10%. -
La última clase de almacenamiento(
cvs-extra-protection) menciona cualquier grupo de almacenamiento que proporcione una reserva de instantáneas del 10%. Trident decide qué grupo virtual se selecciona y garantiza que se cumpla el requisito de reserva de instantáneas.
Ejemplos de tipos de servicio de CVS
Los siguientes ejemplos proporcionan configuraciones de muestra para el tipo de servicio CVS.
Ejemplo 1: Configuración mínima
Esta es la configuración mínima de backend que utiliza storageClass para especificar el tipo de servicio CVS y el valor predeterminado standardsw nivel de servicio.
---
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
Ejemplo 2: Configuración del grupo de almacenamiento
Esta configuración de backend de ejemplo utiliza storagePools para configurar un grupo de almacenamiento.
---
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
¿Que sigue?
Después de crear el archivo de configuración del backend, ejecute el siguiente comando:
tridentctl create backend -f <backend-file>
Si falla la creación del backend, algo falla en la configuración del backend. Puedes consultar los registros para determinar la causa ejecutando el siguiente comando:
tridentctl logs
Después de identificar y corregir el problema con el archivo de configuración, puede volver a ejecutar el comando de creación.