Controladores de Container Storage Interface (CSI) en Azure Kubernetes Service (AKS)
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. Gracias a la adopción y al uso de CSI, Azure Kubernetes Service (AKS) puede escribir, implementar e iterar complementos para exponer nuevos sistemas de almacenamiento o mejorar los existentes en Kubernetes sin tener que tocar el código principal de Kubernetes ni esperar a sus ciclos de versión.
La compatibilidad con el controlador de almacenamiento CSI en AKS permite el uso nativo de:
- Azure Disks puede usarse para 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.
- Azure Files se puede usar para montar un recurso compartido de SMB 3.0/3.1 respaldado por una cuenta de Azure Storage en los 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.
- Azure Blob Storage se puede usar para montar Blob Storage (o almacenamiento de objetos) como un sistema de archivos en un contenedor o pod. El uso de Blob Storage permite que el clúster admita 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.
Importante
A partir de la versión 1.26 de Kubernetes, los tipos de volumen persistentes en el árbol kubernetes.io/azure-disk y kubernetes.io/azure-file están en desuso y ya no se admitirán. No está planificada la eliminación de estos controladores después de su desuso, pero debe 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.
Los controladores en árbol hacen referencia a los controladores de almacenamiento que forman parte del código principal de Kubernetes, en contraposición a los controladores CSI, que son complementos.
Nota:
Se recomienda eliminar el objeto PersistentVolumeClaim correspondiente en lugar del objeto PersistentVolume al eliminar un volumen CSI. El aprovisionamiento externo del controlador CSI reaccionará a la eliminación de PersistentVolumeClaim y, en función de su directiva de recuperación, emitirá la llamada DeleteVolume en los comandos del controlador de volumen CSI para eliminar el volumen. A continuación, se elimina el objeto PersistentVolume.
Requisitos previos
- Es preciso que esté instalada y configurada la versión 2.42 de la CLI de Azure, o una posterior. Ejecute
az --version
para encontrar la versión. Si necesita instalarla o actualizarla, vea 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.
- Para aplicar el Azure Policy para la definición de directiva de AKS, los clústeres de Kubernetes deben usar el controlador StorageClass de la interfaz de almacenamiento de contenedores (CSI), el complemento de Azure Policy debe habilitarse en clústeres nuevos y existentes. Para un clúster existente, revise Información sobre Azure Policy para Kubernetes para habilitarlo.
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 instancias de Azure Key Vault almacenadas en otro inquilino de Microsoft Entra.
- Cifre los discos de Azure Storage que hospedan el sistema operativo AKS y los datos de la aplicación con claves administradas por el cliente.
Habilitación de controladores de almacenamiento CSI en un clúster existente
Para habilitar los controladores de almacenamiento CSI en un clúster nuevo, incluya uno de los parámetros siguientes en función del sistema de almacenamiento:
--enable-disk-driver
permite habilitar el controlador CSI para Azure Disks.--enable-file-driver
permite habilitar el controlador CSI para Azure Files CSI.--enable-blob-driver
permite habilitar el controlador CSI para Azure Blob Storage.--enable-snapshot-controller
permite habilitar el controlador de instantáneas.
az aks update --name myAKSCluster --resource-group myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller
Esta acción puede tardar varios minutos en completarse. Una vez completado, debería ver en la salida el estado de habilitación del controlador en el clúster. El ejemplo siguiente se parece a la sección en la que se indican los resultados al habilitar el controlador CSI de Blob Storage:
"storageProfile": {
"blobCsiDriver": {
"enabled": true
},
Deshabilitación de controladores de almacenamiento CSI en un clúster existente
Para deshabilitar los controladores de almacenamiento CSI en un clúster nuevo, incluya uno de los parámetros siguientes en función del sistema de almacenamiento:
--disable-disk-driver
permite deshabilitar el controlador CSI para Azure Disks CSI.--disable-file-driver
permite deshabilitar el controlador CSI para Azure Files CSI.--disable-blob-driver
permite deshabilitar el controlador CSI para Azure Blob Storage.--disable-snapshot-controller
permite deshabilitar el controlador de instantáneas.
az aks create \
--name myAKSCluster \
--resource-group myResourceGroup \
--disable-disk-driver \
--disable-file-driver \
--disable-blob-driver \
--disable-snapshot-controller \
--generate-ssh-keys
Para deshabilitar los controladores de almacenamiento CSI en un clúster existente, use uno de los parámetros enumerados anteriormente en función del sistema de almacenamiento:
az aks update \
--name myAKSCluster \
--resource-group myResourceGroup \
--disable-disk-driver \
--disable-file-driver \
--disable-blob-driver \
--disable-snapshot-controller
Migrar clases de almacenamiento en árbol personalizadas a CSI
Si ha creado 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 las características de CSI, deberá realizar la migración.
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.
Pasos siguientes
- Para usar el controlador CSI para Azure Disks, consulte Uso de Azure DIsks con controladores CSI.
- Para usar el controlador CSI para Azure Files, consulte Uso de Azure Files con controladores CSI.
- Para usar el controlador CSI para Azure Blob Storage, consulte Uso de Azure Blob Storage con controladores CSI
- Para más información sobre los procedimientos recomendados, consulte Procedimientos recomendados para el almacenamiento y las copias de seguridad en Azure Kubernetes Service.
- Para obtener más información sobre la migración de CSI, vea Migración de volúmenes de Kubernetes en el árbol a CSI.
Azure Kubernetes Service