Compartir a través de


Uso del controlador CSI de Azure Managed Lustre con Azure Kubernetes Service

En este artículo, aprenderá a planificar, instalar y usar Azure Managed Lustre en Azure Kubernetes Service (AKS) con el Controlador CSI de Azure Lustre para Kubernetes. Este controlador se basa en la especificación de la interfaz de compatibilidad con contenedores (CSI).

Puede usar el controlador CSI de Azure Lustre para Kubernetes para acceder al almacenamiento de Azure Managed Lustre como volúmenes de almacenamiento persistentes desde contenedores de Kubernetes implementados en AKS.

Versiones de Kubernetes compatibles

El controlador CSI de Azure Lustre para Kubernetes es compatible con AKS. Actualmente no se admiten otras instalaciones de Kubernetes.

Se admiten las versiones 1.21 y posteriores de AKS Kubernetes. Esta compatibilidad incluye todas las versiones disponibles actualmente al crear un nuevo clúster de AKS.

Importante

Azure Lustre CSI Driver for Kubernetes actualmente solo funciona con la SKU del sistema operativo Ubuntu Linux para grupos de nodos de AKS.

Versiones de Lustre compatibles

Azure Lustre CSI Driver for Kubernetes es compatible con Azure Managed Lustre. Actualmente no se admiten otras instalaciones de Lustre.

Azure Lustre CSI Driver for Kubernetes, versiones 0.1.10 y posteriores, se admiten con la versión actual del servicio Azure Managed Lustre.

Requisitos previos

Planeamiento de la implementación de AKS

Al implementar Azure Kubernetes Service, varias opciones afectan a la operación entre AKS y Azure Managed Lustre.

Determinación del tipo de red que se va a usar con AKS

Dos tipos de red son compatibles con la SKU del sistema operativo Ubuntu Linux: kubenet y el controlador de la interfaz de red de contenedor (CNI) de Azure. Ambas opciones funcionan con Azure Lustre CSI Driver for Kubernetes, pero tienen requisitos diferentes que necesita comprender al configurar redes virtuales y AKS. Para más información sobre cómo determinar la selección adecuada, consulte Conceptos de redes para aplicaciones en Azure Kubernetes Service (AKS).

Determinación de la arquitectura de red para la interconectividad de AKS y Azure Managed Lustre

Azure Managed Lustre funciona dentro de una red virtual privada. La instancia de AKS debe tener conectividad de red con la red virtual de Azure Managed Lustre. Hay dos maneras comunes de configurar las redes entre Azure Managed Lustre y AKS:

  • Instale AKS en su propia red virtual y cree un emparejamiento de red virtual con la red virtual de Azure Managed Lustre.
  • Utilice la opción Traer su propia red virtual de Azure en AKS para instalar AKS en una nueva subred de la red virtual Azure Managed Lustre.

Nota:

No se recomienda instalar AKS en la misma subred que Azure Managed Lustre.

Emparejamiento de AKS y redes virtuales de Azure Managed Lustre

La opción para emparejar dos redes virtuales tiene la ventaja de separar la administración de las redes en distintos roles con privilegios. El emparejamiento también puede proporcionar flexibilidad adicional, ya que puede implementarse en suscripciones o regiones de Azure. El emparejamiento de redes virtuales requiere coordinación entre las dos redes para evitar elegir espacios de red IP en conflicto.

Diagrama que muestra dos redes virtuales, una red para Azure Managed Lustre y otra red para AKS, con una flecha de emparejamiento que las conecta.

Instalación de AKS en una subred en la red virtual de Azure Managed Lustre

La opción de instalar el clúster de AKS en la red virtual de Azure Managed Lustre con la característica Traiga su propia red virtual de Azure en AKS puede ser ventajosa en escenarios en los que la red se administra singularmente. Tendrá que crear una subred adicional, de tamaño para satisfacer los requisitos de red de AKS, en la red virtual de Azure Managed Lustre.

No hay ninguna separación de privilegios para la administración de red al aprovisionar AKS en la red virtual de Azure Managed Lustre. La entidad de servicio de AKS necesita privilegios en la red virtual de Azure Managed Lustre.

Diagrama que muestra una red virtual de Azure Managed Lustre con dos subredes, una para el sistema de archivos lustre y otra para AKS.

Configuración del controlador

Para habilitar azure Lustre CSI Driver for Kubernetes, siga estos pasos:

  1. Crea un clúster del sistema de archivos Azure Managed Lustre.

  2. Creación de un clúster de AKS.

  3. Cree un emparejamiento de red virtual.

  4. Instale el controlador.

  5. Cree y configure un volumen persistente.

  6. Compruebe la instalación usando opcionalmente un pod de eco para confirmar que el controlador está funcionando.

En las secciones siguientes se describe cada tarea con mayor detalle.

Creación de un clúster de sistema de archivos de Azure Managed Lustre

Si aún no ha creado el clúster del sistema de archivos de Azure Managed Lustre, cree el clúster ahora. Para obtener instrucciones, consulte Creación de un sistema de archivos de Azure Managed Lustre mediante Azure Portal. Actualmente, el controlador solo se puede usar con un sistema de archivos de Azure Managed Lustre existente.

Creación de un clúster de AKS

Si aún no ha creado el clúster de AKS, cree una implementación de clúster. Consulte Implementación de un clúster de Azure Kubernetes Service (AKS) mediante Azure Portal.

Creación de un emparejamiento de redes virtuales

Nota:

Omita este paso de emparejamiento de red si instaló AKS en una subred en la red virtual de Azure Managed Lustre.

La red virtual de AKS se crea en un grupo de recursos independiente del grupo de recursos del clúster de AKS. Para encontrar el nombre de este grupo de recursos, vaya a su clúster de AKS en el Portal de Azure, vaya a Propiedadesy busque el grupo de recursos de infraestructura de . Este grupo de recursos contiene la red virtual que debe emparejarse con la red virtual de Azure Managed Lustre. Coincide con el patrón >.

Para emparejar tu red virtual de AKS con la red virtual de Azure Managed Lustre, consulta Emparejamiento de redes virtuales.

Sugerencia

Debido a la nomenclatura de los grupos de recursos y las redes virtuales de MC_, los nombres de las redes pueden ser similares o iguales en varias implementaciones de AKS. Al configurar el emparejamiento, tenga cuidado al elegir las redes de AKS que desee.

Conexión al clúster de AKS

  1. Abra una sesión de terminal con acceso a las herramientas de la CLI de Azure e inicie sesión en su cuenta de Azure:

    az login
    
  2. Inicie sesión en Azure Portal.

  3. Busque el clúster de AKS. En el panel Información general, seleccione el botón Conectar y, a continuación, copie el comando para Descargar credenciales de clúster.

  4. En la sesión de terminal, pegue el comando para descargar las credenciales. El comando es similar a:

    az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
    
  5. Instale kubectl si no está presente en su entorno:

    az aks install-cli
    
  6. Compruebe que el contexto actual es el clúster de AKS donde acaba de instalar las credenciales y que puede conectarse a él:

    kubectl config current-context
    kubectl get deployments --all-namespaces=true
    

Instalación del controlador

Para instalar el controlador CSI de Azure Lustre para Kubernetes, ejecute el siguiente comando:

curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azurelustre-csi-driver/main/deploy/install-driver.sh | bash

Para obtener comandos de ejemplo para una instalación local, consulte Instalación del controlador CSI de Azure Lustre en un clúster de Kubernetes.

Creación y configuración de un volumen persistente

Para crear un volumen persistente para un sistema de archivos de Azure Managed Lustre existente:

  1. Copie los siguientes archivos de configuración de la carpeta /docs/examples/ en el repositorio azurelustre-csi-driver . Si ha clonado el repositorio cuando instaló el controlador, ya tiene copias locales disponibles.

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

    Si no desea clonar todo el repositorio, puede descargar cada archivo individualmente. Abra cada uno de los vínculos siguientes, copie el contenido del archivo y, a continuación, pegue el contenido en un archivo local con el mismo nombre de archivo.

  2. En el archivo storageclass_existing_lustre.yaml, actualice el nombre interno del clúster de Lustre y la dirección IP de Lustre Management Service (MGS).

    Captura de pantalla del archivo storageclass_existing_lustre.yaml con valores que se van a reemplazar resaltados.

    Ambas opciones se muestran en Azure Portal, en el panel Conexión de cliente del sistema de archivos de Azure Managed Lustre.

    Captura de pantalla del panel para la conexión de cliente en el portal de Azure. La dirección IP MGS y el nombre

    Realice estas actualizaciones:

    • Reemplace por EXISTING_LUSTRE_FS_NAME el nombre interno asignado por el sistema del clúster de Lustre en el sistema de archivos de Azure Managed Lustre. El nombre interno suele ser lustrefs. El nombre interno no es el nombre que proporcionó al sistema de archivos al crearlo.

      El comando sugerido incluye el nombre resaltado mount en la siguiente cadena de dirección.

      Captura de pantalla de una cadena de dirección de ejemplo en el panel de conexión del cliente. El nombre interno del clúster de Lustre está resaltado.

    • Reemplace EXISTING_LUSTRE_IP_ADDRESS por la dirección IP mgS.

  3. Para crear la clase de almacenamiento y la notificación de volumen persistente, ejecute el siguiente kubectl comando:

    kubectl create -f storageclass_existing_lustre.yaml
    kubectl create -f pvc_storageclass.yaml
    

Comprobación de la instalación

Si desea comprobar la instalación, puede usar opcionalmente un pod de eco para confirmar que el controlador funciona.

Para ver las marcas de tiempo en la consola durante las escrituras, ejecute los siguientes comandos:

  1. Agregue el código siguiente al pod de eco:

    while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
    
  2. Para ver las marcas de tiempo en la consola durante las escrituras, ejecute el siguiente comando kubectl:

    `kubectl logs -f lustre-echo-date`