Opciones y ejemplos de configuración del backend de Azure NetApp Files
Conoce las opciones de configuración de backend de NFS y SMB para Azure NetApp Files y revisa ejemplos de configuración.
Opciones de configuración del backend
Trident usa tu configuración de backend (subred, red virtual, nivel de servicio y ubicación) para crear volúmenes de Azure NetApp Files en grupos de capacidad que estén disponibles en la ubicación solicitada y coincidan con el nivel de servicio y la subred solicitados.
Los backends de Azure NetApp Files proporcionan estas opciones de configuración.
| Parámetro | Descripción | Predeterminado |
|---|---|---|
|
Siempre 1 |
|
|
Nombre del controlador de almacenamiento |
"azure-netapp-files" |
|
Nombre personalizado o el backend de almacenamiento |
Nombre del driver + "_" + caracteres aleatorios |
|
El identificador de suscripción de tu suscripción de Azure opcional cuando las identidades administradas están habilitadas en un clúster de AKS. |
|
|
El ID del inquilino de un App Registration es opcional cuando se usan identidades administradas o identidad en la nube en un clúster de AKS. |
|
|
El ID de cliente de un registro de aplicación, opcional cuando se usan identidades administradas o identidad en la nube en un clúster de AKS. |
|
|
El secreto del cliente de un registro de aplicación es opcional cuando se usan identidades administradas o identidad en la nube en un clúster de AKS. |
|
|
Uno de |
"" (aleatorio) |
|
Nombre de la ubicación de Azure donde se crearán los nuevos volúmenes Opcional cuando las identidades administradas están habilitadas en un clúster de AKS. |
|
|
Lista de grupos de recursos para filtrar recursos descubiertos |
"[]" (sin filtro) |
|
Lista de cuentas de NetApp para filtrar recursos descubiertos |
"[]" (sin filtro) |
|
Lista de grupos de capacidad para filtrar recursos descubiertos |
"[]" (sin filtro, aleatorio) |
|
Nombre de una red virtual con una subred delegada |
"" |
|
Nombre de una subred delegada a |
"" |
|
Conjunto de funciones de red virtual para un volumen, puede ser |
"" |
|
Control preciso de las opciones de montaje de NFS. Ignorado para volúmenes SMB. Para montar volúmenes usando la versión de NFS 4.1, incluye |
"nfsvers=3" |
|
Falla el aprovisionamiento si el tamaño del volumen solicitado es superior a este valor |
"" (no aplicado por defecto) |
|
Indicadores de depuración para usar cuando estés resolviendo problemas. Ejemplo, |
null |
|
Configura la creación de volúmenes NFS o SMB. Las opciones son |
|
|
Representa una lista de regiones y zonas compatibles con este backend. Para más información, consulta "Usa la topología CSI". |
|
|
Representa el tipo de QoS: automático o manual. |
Automático |
|
Establece el rendimiento máximo permitido en MiB/s. Compatible solo con grupos de capacidad de QoS manual. |
|
|
|
Para obtener más información sobre las funciones de red, consulta "Configura funciones de red para un volumen de Azure NetApp Files". |
Permisos y recursos necesarios
Si recibes el error "No capacity pools found" al crear una PVC, es probable que el registro de tu app no tenga los permisos y recursos necesarios (subred, red virtual, capacity pool) asociados. Si la depuración está habilitada, Trident registrará los recursos de Azure detectados cuando se cree el backend. Verifica que se esté usando un rol apropiado.
Los valores para resourceGroups, netappAccounts, capacityPools, virtualNetwork y subnet se pueden especificar usando nombres cortos o nombres completamente calificados. Se recomiendan los nombres completamente calificados en la mayoría de las situaciones, ya que los nombres cortos pueden coincidir con varios recursos con el mismo nombre.
|
|
Si la vNet está ubicada en un grupo de recursos diferente de la cuenta de almacenamiento de Azure NetApp Files (ANF), especifica el grupo de recursos para la red virtual mientras configuras la lista resourceGroups para el backend. |
Los resourceGroups, netappAccounts, y capacityPools valores son filtros que restringen el conjunto de recursos detectados a los disponibles para este backend de almacenamiento y pueden especificarse en cualquier combinación. Los nombres completos siguen este formato:
| Tipo | Formato |
|---|---|
Grupo de recursos |
<resource group> |
Cuenta de NetApp |
<resource group>/<netapp account> |
Fondo de capacidad |
<resource group>/<netapp account>/<capacity pool> |
Red virtual |
<resource group>/<virtual network> |
Subred |
<resource group>/<virtual network>/<subnet> |
Aprovisionamiento de volumen
Puedes controlar el aprovisionamiento de volúmenes predeterminados especificando las siguientes opciones en una sección especial del archivo de configuración. Consulta Configuraciones de ejemplo para más detalles.
| Parámetro | Descripción | Predeterminado |
|---|---|---|
|
Reglas de exportación para volúmenes nuevos. |
"0.0.0.0/0" |
|
Controla la visibilidad del directorio .snapshot |
"verdadero" para NFSv4 "falso" para NFSv3 |
|
El tamaño predeterminado de los nuevos volúmenes |
"100G" |
|
Los permisos unix de los nuevos volúmenes (4 dígitos octales). Se ignora para volúmenes SMB. |
"" (función de vista previa, requiere whitelisting en la suscripción) |
Configuraciones de ejemplo
Los siguientes ejemplos muestran configuraciones básicas que dejan la mayoría de los parámetros en sus valores predeterminados. Esta es la forma más fácil de definir un backend.
Configuración mínima
Esta es la configuración mínima absoluta del backend. Con esta configuración, Trident detecta todas tus cuentas NetApp, grupos de capacidad y subredes delegadas a Azure NetApp Files en la ubicación configurada, y coloca los nuevos volúmenes en uno de esos grupos y subredes aleatoriamente. Porque nasType se omite, nfs se aplica el valor predeterminado y el backend aprovisionará volúmenes NFS.
Esta configuración es ideal cuando recién estás empezando a usar Azure NetApp Files y estás probando cosas, pero en la práctica vas a querer proporcionar un alcance adicional para los volúmenes que aprovisiones.
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-anf-1
namespace: trident
spec:
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
Identidades administradas para AKS
Esta configuración de backend omite subscriptionID, tenantID, clientID y clientSecret, que son opcionales cuando usas identidades administradas.
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-anf-1
namespace: trident
spec:
version: 1
storageDriverName: azure-netapp-files
capacityPools:
- resource-group-1/netapp-account-1/ultra-pool
resourceGroups:
- resource-group-1
netappAccounts:
- resource-group-1/netapp-account-1
virtualNetwork: resource-group-1/eastus-prod-vnet
subnet: resource-group-1/eastus-prod-vnet/eastus-anf-subnet
Identidad en la nube para AKS
Esta configuración de backend omite tenantID, clientID y clientSecret, que son opcionales cuando usas una identidad en la nube.
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-anf-1
namespace: trident
spec:
version: 1
storageDriverName: azure-netapp-files
capacityPools:
- ultra-pool
resourceGroups:
- aks-ami-eastus-rg
netappAccounts:
- smb-na
virtualNetwork: eastus-prod-vnet
subnet: eastus-anf-subnet
location: eastus
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
Configuración específica del nivel de servicio con filtros de grupo de capacidad
Esta configuración de backend coloca volúmenes en la eastus ubicación de Azure en un Ultra grupo de capacidad. Trident detecta automáticamente todas las subredes delegadas a Azure NetApp Files en esa ubicación y coloca un nuevo volumen en una de ellas aleatoriamente.
---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
serviceLevel: Ultra
capacityPools:
- application-group-1/account-1/ultra-1
- application-group-1/account-1/ultra-2
Ejemplo de backend con grupos de capacidad QoS manuales
Esta configuración de back-end coloca volúmenes en la eastus ubicación de Azure con grupos de capacidad de QoS manuales.
---
version: 1
storageDriverName: azure-netapp-files
backendName: anf1
location: eastus
labels:
clusterName: test-cluster-1
cloud: anf
nasType: nfs
defaults:
qosType: Manual
storage:
- serviceLevel: Ultra
labels:
performance: gold
defaults:
maxThroughput: 10
- serviceLevel: Premium
labels:
performance: silver
defaults:
maxThroughput: 5
- serviceLevel: Standard
labels:
performance: bronze
defaults:
maxThroughput: 3
Configuración avanzada
Esta configuración de backend reduce aún más el alcance de la ubicación del volumen a una sola subred, y también modifica algunos valores predeterminados de aprovisionamiento de volumen.
---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
serviceLevel: Ultra
capacityPools:
- application-group-1/account-1/ultra-1
- application-group-1/account-1/ultra-2
virtualNetwork: application-group-1/eastus-prod-vnet
subnet: application-group-1/eastus-prod-vnet/my-subnet
networkFeatures: Standard
nfsMountOptions: vers=3,proto=tcp,timeo=600
limitVolumeSize: 500Gi
defaults:
exportRule: 10.0.0.0/24,10.0.1.0/24,10.0.2.100
snapshotDir: "true"
size: 200Gi
unixPermissions: "0777"
Configuración de virtual pool
Esta configuración de backend define varios grupos de almacenamiento en un solo archivo. Esto es útil cuando tienes varios grupos de capacidad que admiten diferentes niveles de servicio y quieres crear clases de almacenamiento en Kubernetes que los representen. Se usaron etiquetas de grupo virtual para diferenciar los grupos según performance.
---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
resourceGroups:
- application-group-1
networkFeatures: Basic
nfsMountOptions: vers=3,proto=tcp,timeo=600
labels:
cloud: azure
storage:
- labels:
performance: gold
serviceLevel: Ultra
capacityPools:
- application-group-1/netapp-account-1/ultra-1
- application-group-1/netapp-account-1/ultra-2
networkFeatures: Standard
- labels:
performance: silver
serviceLevel: Premium
capacityPools:
- application-group-1/netapp-account-1/premium-1
- labels:
performance: bronze
serviceLevel: Standard
capacityPools:
- application-group-1/netapp-account-1/standard-1
- application-group-1/netapp-account-1/standard-2
Configuración de topologías admitidas
Trident facilita el aprovisionamiento de volúmenes para cargas de trabajo según regiones y zonas de disponibilidad. El supportedTopologies bloque en esta configuración de backend se usa para proporcionar una lista de regiones y zonas por backend. Los valores de región y zona especificados aquí deben coincidir con los valores de región y zona de las etiquetas en cada nodo del clúster de Kubernetes. Estas regiones y zonas representan la lista de valores permitidos que se pueden proporcionar en una clase de almacenamiento. Para las clases de almacenamiento que contienen un subconjunto de las regiones y zonas proporcionadas en un backend, Trident crea volúmenes en la región y zona mencionadas. Para más información, consulta "Usa la topología CSI".
---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
serviceLevel: Ultra
capacityPools:
- application-group-1/account-1/ultra-1
- application-group-1/account-1/ultra-2
supportedTopologies:
- topology.kubernetes.io/region: eastus
topology.kubernetes.io/zone: eastus-1
- topology.kubernetes.io/region: eastus
topology.kubernetes.io/zone: eastus-2
Definiciones de clases de almacenamiento
Las siguientes StorageClass definiciones se refieren a los grupos de almacenamiento anteriores.
Ejemplos de definiciones usando parameter.selector field
Usando parameter.selector puedes especificar para cada `StorageClass`el pool virtual que se usa para alojar un volumen. El volumen tendrá los aspectos definidos en el pool elegido.
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gold
provisioner: csi.trident.netapp.io
parameters:
selector: performance=gold
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: silver
provisioner: csi.trident.netapp.io
parameters:
selector: performance=silver
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: bronze
provisioner: csi.trident.netapp.io
parameters:
selector: performance=bronze
allowVolumeExpansion: true
Definiciones de ejemplo para volúmenes SMB
Usando nasType, node-stage-secret-name y node-stage-secret-namespace, puedes especificar un volumen SMB y proporcionar las credenciales de Active Directory necesarias.
Configuración básica en el espacio de nombres predeterminado
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: anf-sc-smb
provisioner: csi.trident.netapp.io
parameters:
backendType: "azure-netapp-files"
trident.netapp.io/nasType: "smb"
csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
csi.storage.k8s.io/node-stage-secret-namespace: "default"
Usando diferentes secretos por espacio de nombres
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: anf-sc-smb
provisioner: csi.trident.netapp.io
parameters:
backendType: "azure-netapp-files"
trident.netapp.io/nasType: "smb"
csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
Usando diferentes secretos por volumen
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: anf-sc-smb
provisioner: csi.trident.netapp.io
parameters:
backendType: "azure-netapp-files"
trident.netapp.io/nasType: "smb"
csi.storage.k8s.io/node-stage-secret-name: ${pvc.name}
csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
|
|
nasType: smb`filtros para grupos que admiten volúmenes SMB. `nasType: nfs o `nasType: null`filtros para grupos NFS.
|
Crea el backend
Después de crear el archivo de configuración de backend, ejecuta el siguiente comando:
tridentctl create backend -f <backend-file>
Si la creación del backend falla, algo está mal con la configuración del backend. Puedes ver los logs para determinar la causa ejecutando el siguiente comando:
tridentctl logs
Después de identificar y corregir el problema con el archivo de configuración, puedes volver a ejecutar el comando create.