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:

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:

az aks update -n myAKSCluster -g 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:

az aks create -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-blob-driver --disable-snapshot-controller 

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 -n myAKSCluster -g 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