Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La interfaz de almacenamiento de contenedores (CSI) es un estándar para exponer sistemas de almacenamiento de archivos y bloques arbitrarios a cargas de trabajo en contenedores en Kubernetes. Cuando se usa CSI, Azure Kubernetes Service (AKS) puede escribir, implementar e iterar complementos para exponer nuevos o mejorar los sistemas de almacenamiento existentes en Kubernetes sin tener que tocar el código principal de Kubernetes y esperar sus ciclos de lanzamiento.
La compatibilidad con el controlador de almacenamiento CSI en AKS permite usar de forma nativa Azure Disks, Azure Files o Azure Blob Storage como almacenamiento persistente para las aplicaciones que se ejecutan en AKS.
Sugerencia
Si quiere una solución totalmente administrada para el acceso de nivel de bloque a los datos, considere la posibilidad de usar Almacenamiento de contenedores de Azure en lugar de controladores CSI. Almacenamiento de contenedores de Azure se integra con Kubernetes, lo que permite el aprovisionamiento dinámico y automático de volúmenes persistentes. Almacenamiento de contenedores de Azure admite discos de Azure, discos efímeros y SAN elástico de Azure (versión preliminar) como almacenamiento de respaldo, lo que ofrece flexibilidad y escalabilidad para las aplicaciones con estado que se ejecutan en clústeres de Kubernetes.
Importante
A partir de la versión 1.26 de Kubernetes, los tipos kubernetes.io/Azure-disk de volúmenes persistentes en árbol y kubernetes.io/Azure-file están en desuso y ya no se admitirán.
Los controladores de árbol hacen referencia a los controladores de almacenamiento que forman parte del código principal de Kubernetes en lugar de los controladores CSI, que son complementos.
No está previsto quitar estos controladores tras su retirada, sin embargo, debería migrar a los controladores CSI correspondientes disk.csi.Azure.com y file.csi.Azure.com. Para revisar las opciones de migración de las clases de almacenamiento y actualizar el clúster a fin de usar Azure Disks y los controladores CSI de Azure Files, vea Migración de controladores en el árbol a controladores CSI.
Si creó clases de almacenamiento de controladores en árbol, dichas clases siguen funcionando, ya que la migración de CSI se activa después de actualizar el clúster a la versión 1.21.x. Si desea usar características CSI, debe llevar a cabo la migración.
Acerca del controlador CSI de Azure Disks
El controlador CSI de Azure Disks es un controlador compatible con la especificación CSI que USA AKS para administrar el ciclo de vida de los recursos de Azure Disk. Con el controlador CSI de Azure Disks, puede crear un recurso dataDisk de Kubernetes. Los discos de Azure pueden usar Azure Premium Storage, respaldado por SSD de alto rendimiento, o bien Azure Standard Storage, respaldado por HHD normales o SSD estándar. Para la mayoría de las cargas de trabajo de producción y desarrollo, utilice Premium Storage. Los discos de Azure se montan como ReadWriteOnce y solo están disponibles para un único nodo en AKS. Para los volúmenes de almacenamiento a los que pueden acceder varios nodos simultáneamente, use Azure Files.
Características del controlador CSI de Azure Disks
Además de las características del controlador en árbol, el controlador CSI de Azure Disk admite las siguientes características:
- Mejoras de rendimiento durante las operaciones simultáneas de conexión y desasociación de discos.
- Los controladores en árbol conectan o desasocian discos en serie, mientras que los controladores CSI conectan o desasocian discos por lotes. Hay una mejora significativa cuando hay varios discos conectados a un nodo.
- SSD Premium v1 y v2.
-
PremiumV2_LRSsolo admite elNonemodo de almacenamiento en caché.
-
- Compatibilidad con discos de almacenamiento con redundancia de zona (ZRS).
-
Premium_ZRS,StandardSSD_ZRSse admiten los tipos de disco. El disco ZRS podría ser programado en la zona o en un nodo fuera de la zona, sin la restricción de que el volumen del disco deba estar ubicado en la misma zona que un determinado nodo. Para obtener más información, incluidas las regiones admitidas, consulte Almacenamiento con redundancia de zona para discos administrados.
-
- Cree instantáneas de volúmenes persistentes.
- Cree clones de volumen.
- Cambie el tamaño de los volúmenes persistentes sin tiempo de inactividad.
Nota:
En función de la SKU de máquina virtual (VM) que use, es posible que el controlador CSI de disco de Azure tenga un límite de volumen por nodo. Para algunas máquinas virtuales eficaces (por ejemplo, 16 núcleos), el límite es de 64 volúmenes por nodo. Para identificar el límite por SKU de máquina virtual, revise la columna Número máximo de discos de datos de cada SKU de máquina virtual ofrecida. Para obtener una lista de las SKU de máquina virtual que se ofrecen y sus límites de capacidad correspondientes detallados correspondientes, vea Tamaños de máquina virtual de uso general.
Acerca del controlador CSI de Azure Files
El controlador CSI de Azure Files es un controlador compatible con la especificación CSI usado por AKS para administrar el ciclo de vida de los recursos compartidos de archivos de Azure. Con el controlador CSI de Azure Files, puede montar un recurso compartido SMB 3.0 o 3.1 respaldado por una cuenta de almacenamiento de Azure en pods. Con Azure Files, puede compartir datos entre varios nodos y pods. Azure Files puede usar Azure Standard Storage respaldado por HDD normales, o bien Azure Premium Storage respaldado por SSD de alto rendimiento.
Acerca del controlador CSI de Azure Blob Storage
El controlador CSI de Azure Blob Storage es un controlador compatible con la especificación CSI que USA AKS para administrar el ciclo de vida de Azure Blob Storage. Con el controlador CSI de Azure Blob Storage, puede montar Blob Storage (o almacenamiento de objetos) como un sistema de archivos en un contenedor o pod. El uso de Blob Storage permite al clúster admitir aplicaciones que funcionan con grandes conjuntos de datos no estructurados, como datos de archivos de registro, imágenes o documentos, HPC y otros. Además, si ingiere datos en Azure Data Lake Storage, puede montarlos directamente y usarlos en AKS sin configurar otro sistema de archivos provisional.
Al montar Azure Blob Storage como un sistema de archivos en un contenedor o pod, permite usar Blob Storage con varias aplicaciones que funcionan grandes cantidades de datos no estructurados, como:
- Datos del archivo de registro
- Imágenes, documentos y streaming de vídeo o audio
- Datos de recuperación ante desastres
Las aplicaciones pueden acceder a datos en el almacenamiento de objetos mediante el protocolo BlobFuse o Network File System (NFS) 3.0. Antes de la introducción del controlador CSI de Azure Blob Storage, la única opción era instalar manualmente un controlador no compatible para acceder al almacenamiento de blobs desde la aplicación que se ejecuta en AKS.
Características del controlador CSI de Azure Blob Storage
- Dos clases de almacenamiento integradas: azureblob-fuse-premium_ y azureblob-nfs-premium.
- Protocolo BlobFuse y Network File System (NFS) versión 3.0.
Requisitos previos
- Es preciso que esté instalada y configurada la versión 2.42 de la CLI de Azure, o una posterior. Busque la versión con el comando
az --version. Para la instalación o la actualización, consulte Instalación de la CLI de Azure. - Si el controlador de almacenamiento CSI de código abierto está instalado en el clúster, desinstálelo antes de habilitar el controlador CSI de Azure Storage.
Siga estos pasos si instaló anteriormente el controlador de código abierto CSI Blob Storage para acceder a Azure Blob Storage desde el clúster.
Nota:
Si blobfuse-proxy no está habilitado durante la instalación del controlador de código abierto, la desinstalación del controlador de código abierto interrumpe los montajes de blobfuse existentes. Las monturas NFS no se ven afectadas.
- Para aplicar Azure Policy para la definición de directiva de AKS, los clústeres de Kubernetes deberían usar el controlador de Container Storage Interface (CSI)
StorageClass, es necesario habilitar el complemento de Azure Policy en el clúster. Para habilitar en un clúster existente, consulte Learn Azure Policy for Kubernetes.
Escenarios admitidos para el cifrado de disco
Los controladores de almacenamiento CSI admiten los siguientes escenarios:
- Discos administrados cifrados con claves administradas por el cliente mediante almacenes de claves de Azure almacenados en otro inquilino de Microsoft Entra.
- Cifre los discos de Azure Storage que hospedan el sistema operativo (SO) de AKS y los datos de la aplicación con claves administradas por el cliente.
Habilitación del controlador de almacenamiento CSI de Azure Disks en un clúster de AKS existente
Habilite el controlador CSI de Azure Disks en un clúster existente mediante el comando [
az aks update][az-aks-update] con el--enable-disk-driverparámetro . En el ejemplo siguiente se habilita el controlador CSI de Azure Disks en un clúster existente denominado myAKSCluster en el grupo de recursos myResourceGroup:Nota:
Puede habilitar el controlador de instantáneas al mismo tiempo que el controlador CSI de Azure Disks, que permite crear instantáneas de los volúmenes persistentes. Para habilitar el controlador de instantáneas, incluya el
--enable-snapshot-controllerparámetro en el comando .az aks update --name myAKSCluster --resource-group myResourceGroup --enable-disk-driverLa habilitación del controlador CSI de Azure Disks tarda unos minutos. Una vez completado el comando, compruebe que el controlador está habilitado verificando que
blobCsiDriverestá establecido entrueen la salida. Por ejemplo:"storageProfile": { "blobCsiDriver": { "enabled": true },
Habilitación del controlador de almacenamiento CSI de Azure Files en un clúster de AKS existente
Habilite el controlador CSI de Azure Files en un clúster existente mediante el comando [
az aks update][az-aks-update] con el--enable-file-driverparámetro . En el ejemplo siguiente se habilita el controlador CSI de Azure Files en un clúster existente denominado myAKSCluster en el grupo de recursos myResourceGroup:Nota:
Puede habilitar el controlador de instantáneas al mismo tiempo que el controlador CSI de Azure Files, que permite crear instantáneas de los volúmenes persistentes. Para habilitar el controlador de instantáneas, incluya el
--enable-snapshot-controllerparámetro en el comando .az aks update --name myAKSCluster --resource-group myResourceGroup --enable-file-driverLa habilitación del controlador CSI de Azure Files tarda unos minutos. Una vez completado el comando, puede comprobar que el controlador está habilitado al ver que
fileCsiDriverestá establecido entrueen la salida. Por ejemplo:"storageProfile": { "fileCsiDriver": { "enabled": true },
Habilitación del controlador de almacenamiento CSI de Azure Blob Storage en un clúster de AKS existente
Habilite el controlador CSI de Azure Blob Storage en un clúster existente mediante el comando [
az aks update][az-aks-update] con el parámetro--enable-blob-driver. En el ejemplo siguiente se habilita el controlador CSI de Azure Blob Storage en un clúster existente denominado myAKSCluster en el grupo de recursos myResourceGroup:Nota:
Puede habilitar el controlador de instantáneas al mismo tiempo que el controlador CSI de Azure Blob Storage, que permite crear instantáneas de los volúmenes persistentes. Para habilitar el controlador de instantáneas, incluya el
--enable-snapshot-controllerparámetro en el comando .az aks update --name myAKSCluster --resource-group myResourceGroup --enable-blob-driverLa habilitación del controlador CSI de Azure Blob Storage tarda unos minutos. Una vez completado el comando, puede verificar que el controlador está habilitado comprobando que
blobCsiDriverestá establecido entrueen la salida. Por ejemplo:"storageProfile": { "blobCsiDriver": { "enabled": true },
Deshabilitación del controlador de almacenamiento CSI de Azure Disks en un clúster de AKS existente
Deshabilite el controlador CSI de Azure Disks en un clúster existente mediante el comando [
az aks update][az-aks-update] con el--disable-disk-driverparámetro . En el ejemplo siguiente se deshabilita el controlador CSI de Azure Disks en un clúster existente denominado myAKSCluster en el grupo de recursos myResourceGroup:Nota:
Puede deshabilitar el controlador de instantáneas si incluye el
--disable-snapshot-controllerparámetro en el comando .az aks update --name myAKSCluster --resource-group myResourceGroup --disable-disk-driver
Deshabilitación del controlador de almacenamiento CSI de Azure Files en un clúster de AKS existente
Deshabilite el controlador CSI de Azure Files en un clúster existente mediante el comando [
az aks update][az-aks-update] con el--disable-file-driverparámetro . En el ejemplo siguiente se deshabilita el controlador CSI de Azure Files en un clúster existente denominado myAKSCluster en el grupo de recursos myResourceGroup:Nota:
Puede deshabilitar el controlador de instantáneas si incluye el
--disable-snapshot-controllerparámetro en el comando .az aks update --name myAKSCluster --resource-group myResourceGroup --disable-file-driver
Deshabilitación del controlador de almacenamiento CSI de Azure Blob Storage en un clúster de AKS existente
Deshabilite el controlador CSI de Azure Blob Storage en un clúster existente mediante el comando [
az aks update][az-aks-update] con el parámetro--disable-blob-driver. En el ejemplo siguiente se deshabilita el controlador CSI de Azure Blob Storage en un clúster existente denominado myAKSCluster en el grupo de recursos myResourceGroup:Nota:
Puede deshabilitar el controlador de instantáneas si incluye el
--disable-snapshot-controllerparámetro en el comando .az aks update --name myAKSCluster --resource-group myResourceGroup --disable-blob-driver
Nota:
Se recomienda eliminar el objeto PersistentVolumeClaim correspondiente en lugar del objeto PersistentVolume al eliminar un volumen CSI. El aprovisionador externo del controlador CSI reacciona a la eliminación de PersistentVolumeClaim. En función de la directiva de recuperación de PVC, el aprovisionador emite la llamada DeleteVolume contra el controlador de volumen CSI para eliminar el volumen. A continuación, se elimina el objeto PersistentVolume.