Configure un back-end de Cloud Volumes Service para Google Cloud
Aprenda a configurar NetApp Cloud Volumes Service para Google Cloud como el back-end para su instalación de Trident con las configuraciones de ejemplo proporcionadas.
Detalles del controlador de Google Cloud
Trident proporciona gcp-cvs
el controlador para comunicarse con el clúster. Los modos de acceso admitidos son: ReadWriteOnce (RWO), ReadOnlyMany (ROX), ReadWriteMany (RWX), ReadWriteOncePod (RWOP).
Controlador | Protocolo | VolumeMode | Modos de acceso compatibles | Sistemas de archivos compatibles |
---|---|---|---|---|
|
NFS |
Sistema de archivos |
RWO, ROX, RWX, RWOP |
|
Obtén más información sobre el soporte de Trident para Cloud Volumes Service para Google Cloud
Trident puede crear volúmenes de Cloud Volumes Service en uno de estos dos"tipos de servicio":
-
CVS-Performance: El tipo de servicio Trident predeterminado. Este tipo de servicio optimizado para el rendimiento es 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. Puede elegir una de "tres niveles de servicio"las opciones:
-
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 usa pools de almacenamiento para admitir volúmenes de solo 1 GIB. El pool de almacenamiento puede contener hasta 50 volúmenes en los que todos los volúmenes comparten la capacidad y el rendimiento del pool. Puede elegir uno de "dos niveles de servicio":
-
standardsw
-
zoneredundantstandardsw
-
Para configurar y usar el "Cloud Volumes Service para Google Cloud" back-end, necesita lo siguiente:
-
Una cuenta de Google Cloud configurada con Cloud Volumes Service de NetApp
-
Número de proyecto de su cuenta de Google Cloud
-
Cuenta de servicio de Google Cloud con el
netappcloudvolumes.admin
función -
Archivo de claves API para la cuenta de Cloud Volumes Service
Opciones de configuración del back-end
Cada back-end aprovisiona volúmenes en una única región de Google Cloud. Para crear volúmenes en otras regiones, se pueden definir back-ends adicionales.
Parámetro | Descripción | Predeterminado |
---|---|---|
|
Siempre 1 |
|
|
Nombre del controlador de almacenamiento |
"gcp-cvs" |
|
Nombre personalizado o el back-end de almacenamiento |
Nombre de controlador + "_" + parte de la clave de API |
|
Parámetro opcional utilizado para especificar el tipo de servicio CVS. Se utiliza |
|
|
Solo tipo de servicio CVS. Parámetro opcional que se utiliza para especificar pools de almacenamiento para la creación del volumen. |
|
|
Número de proyecto de cuenta de Google Cloud. El valor está disponible en la página de inicio del portal de Google Cloud. |
|
|
Se requiere si se utiliza una red VPC compartida. En este escenario, |
|
|
La región de Google Cloud donde Trident crea Cloud Volumes Service Volumes. Al crear clústeres de Kubernetes entre regiones, los volúmenes creados en un |
|
|
Clave de API para la cuenta de servicio de Google Cloud con el |
|
|
URL de proxy si se requiere servidor proxy para conectarse a la cuenta CVS. El servidor proxy puede ser un proxy HTTP o HTTPS. En el caso de un proxy HTTPS, se omite la validación de certificados para permitir el uso de certificados autofirmados en el servidor proxy. No se admiten los servidores proxy con autenticación habilitada. |
|
|
Control preciso de las opciones de montaje NFS. |
"nfsvers=3" |
|
No se puede aprovisionar si el tamaño del volumen solicitado es superior a este valor. |
"" (no se aplica de forma predeterminada) |
|
El nivel de servicio CVS-Performance o CVS para nuevos volúmenes. Los valores de CVS-Performance son |
El valor predeterminado de CVS-Performance es "estándar". El valor predeterminado de CVS es "standardsw". |
|
Se utiliza la red de Google Cloud para Cloud Volumes Service Volumes. |
"predeterminado" |
|
Indicadores de depuración que se deben usar para la solución de problemas. Ejemplo: |
nulo |
|
Para habilitar el acceso a varias regiones, se debe definir StorageClass para |
Opciones de aprovisionamiento de volúmenes
Es posible controlar el aprovisionamiento de volúmenes predeterminado en la defaults
sección del archivo de configuración.
Parámetro | Descripción | Predeterminado |
---|---|---|
|
Las reglas de exportación de nuevos volúmenes. Debe ser una lista separada por comas con 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 las Snapshot |
"" (Aceptar CVS por defecto de 0) |
|
El tamaño de los volúmenes nuevos. CVS-Performance mínimo es 100 GIB. El mínimo de CVS es 1 GIB. |
El tipo de servicio CVS-Performance se establece de manera predeterminada en "100GIB". El tipo de servicio CVS no establece un valor predeterminado, pero requiere un mínimo de 1 GIB. |
Ejemplos de tipo de servicio CVS-Performance
Los siguientes ejemplos proporcionan ejemplos de configuraciones para el tipo de servicio CVS-Performance.
Ejemplo 1: Configuración mínima
Esta es la configuración de back-end mínima usando 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 de nivel de servicio
Este ejemplo muestra las opciones de configuración del back-end, incluidos 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 pool virtual
Este ejemplo utiliza storage
para configurar los pools virtuales y el StorageClasses
eso se refiere a ellos. Consulte Definiciones de clases de almacenamiento para ver cómo se definieron las clases de almacenamiento.
Aquí, se establecen valores predeterminados específicos para todos los pools virtuales, con los que se establece el snapshotReserve
con el 5% y la exportRule
a 0.0.0.0/0. Los pools virtuales se definen en la storage
sección. Cada pool virtual individual define el suyo propio serviceLevel
, y algunos pools sobrescriben los valores predeterminados. Se utilizaron etiquetas de pools virtuales para diferenciar los pools según 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 pool virtual. Uso parameters.selector
, Puede especificar para cada clase de almacenamiento el pool virtual utilizado para alojar un volumen. Los aspectos definidos en el pool elegido serán el volumen.
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
-
El primer tipo de almacenamiento (
cvs-extreme-extra-protection
) se asigna al primer grupo virtual. Se trata del único pool que ofrece un rendimiento extremo con una reserva Snapshot del 10%. -
The Last StorageClass (
cvs-extra-protection
) llama a cualquier pool de almacenamiento que proporciona una reserva de instantáneas del 10%. Trident decide qué pool virtual se selecciona y garantiza que se cumpla el requisito de reserva de snapshots.
Ejemplos de tipo de servicio CVS
Los siguientes ejemplos proporcionan configuraciones de ejemplo para el tipo de servicio CVS.
Ejemplo 1: Configuración mínima
Esta es la configuración mínima del back-end mediante 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 pool de almacenamiento
Esta configuración de entorno de administración de ejemplo utiliza storagePools
para configurar un pool 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
El futuro
Después de crear el archivo de configuración del back-end, ejecute el siguiente comando:
tridentctl create backend -f <backend-file>
Si la creación del back-end falla, algo está mal con la configuración del back-end. Puede ver 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 ejecutar de nuevo el comando create.