Configurar una clase de almacenamiento
El "Objeto de Kubernetes StorageClass" identifica a un proveedor y le indica cómo aprovisionar volúmenes. Esta sección te muestra cómo configurar un objeto de Kubernetes StorageClass que especifica a Trident como el proveedor.
Crear un objeto StorageClass
Cuando creas un StorageClass para FSx for ONTAP, Trident creará automáticamente la configuración del backend.
|
|
Si quieres configurar manualmente el backend de almacenamiento, consulta la sección [create-a-kubernetes-storageclass-without-automatic-backend-configuration] para saber cómo crear el backend Trident y la clase de almacenamiento por separado. |
Especifica los parámetros requeridos StorageClass
Los siguientes tres parámetros deben definirse al crear un StorageClass:
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
|
Sí |
cadena |
FSx para NetApp ONTAP filesystem ID |
|
Sí |
cadena |
Controlador de almacenamiento Trident (por ejemplo, |
|
Sí |
cadena |
Nombre del secreto de Kubernetes que contiene FSx for ONTAP credenciales |
Especifica parámetros opcionales
Puedes pasar parámetros opcionales de backend a través de StorageClass. Define todos los valores opcionales como cadenas en la sección StorageClass parameters. Para obtener una lista completa de los parámetros de backend, consulta: Configuración del backend de FSx para NetApp ONTAP.
Ejemplo de archivos de configuración de StorageClass.
El siguiente ejemplo muestra un StorageClass que activa la configuración automática del backend.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap-fsx-demo
annotations:
description: "Demo StorageClass for FSx for NetApp ONTAP"
provisioner: csi.trident.netapp.io
parameters:
fsxFilesystemID: "fs-0abc123"
storageDriverName: "ontap-nas"
credentialsName: trident-fsx-credentials
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
{
"apiVersion": "storage.k8s.io/v1",
"kind": "StorageClass",
"metadata": {
"name": "ontap-fsx-demo",
"annotations": {
"description": "Demo StorageClass for FSx for NetApp ONTAP"
}
},
"provisioner": "csi.trident.netapp.io",
"parameters": {
"fsxFilesystemID": "fs-0abc123",
"storageDriverName": "ontap-nas",
"credentialsName": "trident-fsx-credentials"
},
"allowVolumeExpansion": true,
"reclaimPolicy": "Delete",
"volumeBindingMode": "Immediate"
}
Crear el StorageClass
Una vez que hayas creado tu archivo de configuración, ejecuta el siguiente comando para crear la clase de almacenamiento.
kubectl create -f storage-class-ontapnas.yaml
Ahora deberías ver una clase de almacenamiento basic-csi tanto en Kubernetes como en Trident, y Trident debería haber descubierto los pools en el back-end.
kubectl get sc basic-csi
NAME PROVISIONER AGE basic-csi csi.trident.netapp.io 15h
Después de aplicar StorageClass, Trident crea el backend automáticamente. Luego, puedes crear PersistentVolumeClaims que hacen referencia a este StorageClass.
Verifica el estado de la configuración del backend
Trident registra el resultado de la creación del backend en las anotaciones de StorageClass.
| Anotación | Descripción |
|---|---|
|
Resultado de la configuración ( |
|
Estado detallado o mensaje de error |
|
Nombre del recurso interno del configurador |
|
Indica que el StorageClass está gestionado por Trident |
|
Grupos de almacenamiento creados para este backend |
Para verificar el estado, ejecuta:
kubectl get storageclass ontap-fsx-demo -o yaml
Confirma que trident.netapp.io/configuratorStatus está configurado en Success. Si el valor es Failure, revisa trident.netapp.io/configuratorMessage para ver el error.
Añade sistemas de archivos FSxN adicionales
Si necesitas capacidad de almacenamiento adicional mientras sigues usando el mismo StorageClass, añade ID de sistemas de archivos FSxN adicionales.
Edita el StorageClass y añade la siguiente anotación:
metadata:
annotations:
trident.netapp.io/additionalFsxNFileSystemID: '["fs-xxxxxxxxxxxxxxxxxx"]'
Después de aplicar el cambio, Trident actualiza la configuración del backend y actualiza las anotaciones de StorageClass.
Consideraciones operativas y limitaciones
-
Eliminar un StorageClass que tiene la configuración automática de backend normalmente elimina el backend Trident asociado. Esto puede interrumpir la conectividad de almacenamiento y afectar las cargas de trabajo en ejecución. Valida el impacto antes de eliminar un StorageClass administrado.
-
La configuración automática del backend solo es compatible con AWS FSx for NetApp ONTAP.
Crear un Kubernetes StorageClass sin configuración automática del backend
Si quieres crear el backend de Trident y StorageClass por separado, entonces sigue estos pasos.
Entiende cómo funciona la configuración automática del backend
Trident obtiene la configuración del backend a partir de la definición de StorageClass. Cuando aplicas la StorageClass, Trident valida los parámetros necesarios, crea el backend y anota la StorageClass con el estado.
Trident crea el VolumeSnapshotClass solo una vez. Trident reutiliza el mismo VolumeSnapshotClass para los siguientes StorageClasses.
Crear el backend Trident
Para crear un backend Trident, necesitas crear un archivo de configuración en formato JSON o YAML. El archivo debe especificar el tipo de almacenamiento que quieres (NAS o SAN), el sistema de archivos, la SVM de la que lo vas a obtener y cómo autenticarte con ella. El siguiente ejemplo muestra cómo definir almacenamiento basado en NAS y usar un secreto de AWS para guardar las credenciales de la SVM que quieres usar:
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-nas
namespace: trident
spec:
version: 1
storageDriverName: ontap-nas
backendName: tbc-ontap-nas
svm: svm-name
aws:
fsxFilesystemID: fs-xxxxxxxxxx
credentials:
name: "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name"
type: awsarn
{
"apiVersion": "trident.netapp.io/v1",
"kind": "TridentBackendConfig",
"metadata": {
"name": "backend-tbc-ontap-nas"
"namespace": "trident"
},
"spec": {
"version": 1,
"storageDriverName": "ontap-nas",
"backendName": "tbc-ontap-nas",
"svm": "svm-name",
"aws": {
"fsxFilesystemID": "fs-xxxxxxxxxx"
},
"managementLIF": null,
"credentials": {
"name": "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name",
"type": "awsarn"
}
}
}
FSX para ONTAP detalles del controlador
Puedes integrar Trident con Amazon FSx for NetApp ONTAP mediante los siguientes controladores:
| Nombre del controlador | Descripción |
|---|---|
|
Cada PV aprovisionado es un LUN dentro de su propio volumen de Amazon FSx for NetApp ONTAP. Recomendado para almacenamiento en bloque. |
|
Cada PV aprovisionado es un volumen completo de Amazon FSx for NetApp ONTAP. Recomendado para NFS y SMB. |
|
Cada PV aprovisionado es un LUN con un número configurable de LUNs por volumen de Amazon FSx para NetApp ONTAP. |
|
Cada PV aprovisionado es un qtree, con un número configurable de qtrees por volumen de Amazon FSx para NetApp ONTAP. |
|
Cada PV aprovisionado es un volumen completo de Amazon FSx for NetApp ONTAP FlexGroup. |
Para obtener información detallada sobre el conductor, consulte "Controladores de NAS" y.. "Controladores de SAN".
Cree el back-end
Después de crear el archivo de configuración, ejecuta los siguientes comandos para crear y validar la configuración del backend de Trident (TBC):
-
Cree la configuración de backend de Trident (TBC) desde el archivo yaml y ejecute el siguiente comando:
kubectl create -f backendconfig.yaml -n tridenttridentbackendconfig.trident.netapp.io/backend-tbc-ontap-nas created
-
Validar que la configuración de backend de Trident (TBC) se ha creado correctamente:
Kubectl get tbc -n tridentNAME BACKEND NAME BACKEND UUID PHASE STATUS backend-tbc-ontap-nas tbc-ontap-nas 933e0071-66ce-4324-b9ff-f96d916ac5e9 Bound Success
Para más información sobre otras opciones de configuración, consulta la sección [Backend-advanced-configuration-and-examples] a continuación.
Configura una clase de almacenamiento sin configuración automática del backend
A continuación se muestran ejemplos de configuraciones de Storage Class para su uso con Trident y FSx for ONTAP.
Clase de almacenamiento para NFS
Puedes usar este ejemplo para configurar StorageClass para volúmenes que usan NFS (consulta la sección de atributos de Trident a continuación para la lista completa de atributos):
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas"
provisioningType: "thin"
snapshots: "true"
Storage Calss para iSCSI
Usa este ejemplo para configurar StorageClass para volúmenes que usan iSCSI:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san"
provisioningType: "thin"
snapshots: "true"
Clase de almacenamiento con NFSv3 y AWS Bottlerocket
Para aprovisionar volúmenes de NFSv3 TB en AWS Bottlerocket, agregue el necesario mountOptions a la clase de almacenamiento:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas"
media: "ssd"
provisioningType: "thin"
snapshots: "true"
mountOptions:
- nfsvers=3
- nolock
Atributos de Trident StorageClass
Estos parámetros determinan qué pools de almacenamiento gestionados por Trident se deben utilizar para aprovisionar volúmenes de un determinado tipo.
| Atributo | Tipo | Valores | Oferta | Solicitud | Admitido por |
|---|---|---|---|---|---|
media 1 |
cadena |
hdd, híbrido, ssd |
Pool contiene medios de este tipo; híbrido significa ambos |
Tipo de medios especificado |
ontap-nas, ontap-nas-economy, ontap-nas-flexgroup, ontap-san y solidfire-san |
AprovisionaciónTipo |
cadena |
delgado, grueso |
El pool admite este método de aprovisionamiento |
Método de aprovisionamiento especificado |
grueso: all ONTAP; thin: all ONTAP y solidfire-san |
Tipo de backendType |
cadena |
ontap-nas, ontap-nas-economy, ontap-nas-flexgroup, ontap-san, solidfire-san, azure-netapp-files, ontap-san-economy |
Pool pertenece a este tipo de backend |
Backend especificado |
Todos los conductores |
snapshot |
bool |
verdadero, falso |
El pool admite volúmenes con Snapshot |
Volumen con snapshots habilitadas |
ontap-nas, ontap-san, solidfire-san |
clones |
bool |
verdadero, falso |
Pool admite el clonado de volúmenes |
Volumen con clones habilitados |
ontap-nas, ontap-san, solidfire-san |
cifrado |
bool |
verdadero, falso |
El pool admite volúmenes cifrados |
Volumen con cifrado habilitado |
ontap-nas, ontap-nas-economy, ontap-nas-flexgroups, ontap-san |
IOPS |
int |
entero positivo |
El pool es capaz de garantizar IOPS en este rango |
El volumen garantizado de estas IOPS |
solidfire-san |
1: No soportado por ONTAP Select o FSx for ONTAP systems
Consulte el "Objetos de Kubernetes y Trident" para obtener más detalles sobre cómo interactúan las clases de almacenamiento con los PersistentVolumeClaim parámetros y para controlar la forma en que Trident aprovisiona los volúmenes.
Crear la clase de almacenamiento
Una vez que hayas configurado StorageClass, puedes crearlo en Kubernetes.
-
Este es un objeto de Kubernetes, así que use
kubectlPara crear en Kubernetes.kubectl create -f storage-class-ontapnas.yaml -
Ahora deberías ver una clase de almacenamiento basic-csi tanto en Kubernetes como en Trident, y Trident debería haber descubierto los pools en el back-end.
kubectl get sc basic-csi
NAME PROVISIONER AGE basic-csi csi.trident.netapp.io 15h
aprovisionamiento de volúmenes SMB
Puedes aprovisionar volúmenes SMB usando el controlador ontap-nas. Sin embargo, para hacerlo debes completar estos pasos: "Prepárese para aprovisionar los volúmenes de SMB".
Configuración avanzada de backend y ejemplos
Consulte la siguiente tabla para ver las opciones de configuración del back-end:
| Parámetro | Descripción | Ejemplo |
|---|---|---|
|
Siempre 1 |
|
|
Nombre del controlador de almacenamiento |
|
|
Nombre personalizado o el back-end de almacenamiento |
Nombre de controlador + «_» + LIF de datos |
|
Dirección IP de un clúster o una LIF de gestión de SVM Se puede especificar un nombre de dominio completo (FQDN). Se puede configurar para utilizar direcciones IPv6 si Trident se instaló con el indicador IPv6. Las direcciones IPv6 deben definirse entre corchetes, como [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]. Si proporciona el |
«10,0.0,1», «[2001:1234:abcd::fefe]» |
|
Dirección IP del protocolo LIF. ONTAP NAS drivers: NetApp recomienda especificar dataLIF. Si no se proporciona, Trident obtiene los dataLIF de la SVM. Puedes especificar un nombre de dominio completo (FQDN) para las operaciones de montaje NFS, lo que te permite crear un DNS round-robin para equilibrar la carga entre varios dataLIF. Se puede cambiar después de la configuración inicial. ONTAP SAN drivers: no especificar para iSCSI. Trident usa ONTAP Selective LUN Map para descubrir los iSCSI LIF necesarios para establecer una sesión multipath. Se genera una advertencia si dataLIF se define explícitamente. Se puede configurar para usar direcciones IPv6 si Trident se instaló usando el indicador IPv6. Las direcciones IPv6 deben definirse entre corchetes, como [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]. |
|
|
Habilite la creación y actualización automática de la política de exportación [Boolean]. Mediante las |
|
|
Lista de CIDRs para filtrar las IP del nodo de Kubernetes contra cuando |
«[«0,0.0,0/0»::/0»]» |
|
Conjunto de etiquetas con formato JSON arbitrario que se aplica en los volúmenes |
"" |
|
Valor codificado en base64 del certificado de cliente. Se utiliza para autenticación basada en certificados |
"" |
|
Valor codificado en base64 de la clave privada de cliente. Se utiliza para autenticación basada en certificados |
"" |
|
Valor codificado en base64 del certificado de CA de confianza. Opcional. Se utiliza para autenticación basada en certificados. |
"" |
|
El nombre de usuario para conectarse al clúster o SVM. Se utiliza para autenticación basada en credenciales. Por ejemplo, vsadmin. |
|
|
La contraseña para conectarse al clúster o SVM. Se utiliza para autenticación basada en credenciales. |
|
|
Máquina virtual de almacenamiento que usar |
Derivado si se especifica una LIF de gestión de SVM. |
|
El prefijo que se utiliza cuando se aprovisionan volúmenes nuevos en la SVM. No se puede modificar una vez creada. Para actualizar este parámetro, deberá crear un nuevo backend. |
|
|
No especifiques para Amazon FSx para NetApp ONTAP. El proporcionado |
No utilizar. |
|
Error en el aprovisionamiento si el tamaño del volumen solicitado es superior a este valor. También restringe el tamaño máximo de los volúmenes que gestiona para qtrees y LUN, y la |
"" (no se aplica de forma predeterminada) |
|
El número máximo de LUN por FlexVol volume debe estar comprendido entre [50, 200]. Solo SAN. |
« |
|
Indicadores de depuración que se deben usar para la solución de problemas. Ejemplo, {«api»:false, «method»:true} |
nulo |
|
Lista de opciones de montaje NFS separadas por comas. Las opciones de montaje para los volúmenes persistentes de Kubernetes se especifican normalmente en las clases de almacenamiento, pero si no se especifican opciones de montaje en una clase de almacenamiento, Trident volverá a utilizar las opciones de montaje especificadas en el archivo de configuración del back-end de almacenamiento. Si no se especifican opciones de montaje en la clase almacenamiento o el archivo de configuración, Trident no definirá ninguna opción de montaje en un volumen persistente asociado. |
"" |
|
Configure la creación de volúmenes NFS o SMB. Las opciones son |
|
|
El número máximo de qtrees por FlexVol volume debe estar en el intervalo [50, 300] |
|
|
Puede especificar una de las siguientes opciones: El nombre de un recurso compartido de SMB creado con la consola de administración de Microsoft o la interfaz de línea de comandos de ONTAP, o bien un nombre para permitir que Trident cree el recurso compartido de SMB. Este parámetro es obligatorio para los back-ends de Amazon FSx para ONTAP. |
|
|
Parámetro booleano para usar las API DE REST de ONTAP. Cuando se establece en |
|
|
Puedes especificar lo siguiente en el archivo de configuración de AWS FSx para ONTAP: |
|
|
Especifique las credenciales de FSX SVM para almacenarlas en AWS Secrets Manager. |
Opciones de configuración de back-end para el aprovisionamiento de volúmenes
Puede controlar el aprovisionamiento predeterminado utilizando estas opciones en la defaults sección de la configuración. Para ver un ejemplo, vea los ejemplos de configuración siguientes.
| Parámetro | Descripción | Predeterminado |
|---|---|---|
|
Asignación de espacio para las LUN |
|
|
Modo de reserva de espacio; «ninguno» (fino) o «volumen» (grueso) |
|
|
Política de Snapshot que se debe usar |
|
|
Grupo de políticas de calidad de servicio que se asignará a los volúmenes creados. Elija uno de qosPolicy o adaptiveQosPolicy por pool de almacenamiento o back-end. Usar grupos de políticas de QoS con Trident requiere ONTAP 9 Intersight 8 o posterior. Debe usar un grupo de políticas de calidad de servicio no compartido y asegurarse de que el grupo de políticas se aplique a cada componente individualmente. Un grupo de políticas de calidad de servicio compartido aplica el techo máximo para el rendimiento total de todas las cargas de trabajo. |
"" |
|
Grupo de políticas de calidad de servicio adaptativo que permite asignar los volúmenes creados. Elija uno de qosPolicy o adaptiveQosPolicy por pool de almacenamiento o back-end. no admitido por ontap-nas-Economy. |
"" |
|
Porcentaje de volumen reservado para las instantáneas «0» |
|
|
Divida un clon de su elemento principal al crearlo |
|
|
Habilite el cifrado de volúmenes de NetApp (NVE) en el nuevo volumen; los valores predeterminados son |
|
|
Active el cifrado LUKS. Consulte "Usar la configuración de clave unificada de Linux (LUKS)". Solo SAN. |
"" |
|
Política de organización en niveles para utilizar |
|
|
Modo para volúmenes nuevos. Dejar vacío para volúmenes SMB. |
"" |
|
Estilo de seguridad para nuevos volúmenes. Compatibilidad con NFS |
El valor predeterminado de NFS es |