Compartir a través de


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

En este artículo, aprenderá a planear, instalar y usar Azure Managed Lustre en Azure Kubernetes Service (AKS) con el controlador de interfaz de compatibilidad con contenedores de Azure Managed Lustre Kubernetes (controlador CSI de Azure Managed Lustre).

Acerca del controlador CSI de Azure Managed Lustre para AKS

El controlador azure Managed Lustre Container Support Interface (CSI) para AKS le permite acceder al almacenamiento de Azure Managed Lustre como volúmenes de almacenamiento persistentes desde contenedores de Kubernetes implementados en Azure Kubernetes Service (AKS).

Versiones de Kubernetes compatibles

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

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

Importante

El controlador CSI de Azure Managed Lustre solo funciona actualmente con la SKU del sistema operativo Ubuntu Linux para grupos de nodos de AKS.

Versiones de Lustre compatibles

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

Las versiones 0.1.1.10 del controlador CSI de Azure Managed Lustre se admiten con la versión actual del servicio Azure Managed Lustre.

Requisitos previos

Planeamiento de la implementación de AKS

Hay varias opciones al implementar Azure Kubernetes Service que afectan a la operación entre AKS y Azure Managed Lustre.

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

Hay dos tipos de red compatibles con la SKU del sistema operativo Ubuntu Linux, kubenet y el controlador de interfaz de red de contenedor (CNI) de Azure. Ambas opciones funcionan con el controlador CSI de Azure Managed Lustre para AKS, pero tienen requisitos diferentes que deben entenderse al configurar redes virtuales y AKS. Consulte Conceptos de redes para aplicaciones en Azure Kubernetes Service (AKS) para más información sobre cómo determinar la selección adecuada.

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; Kubernetes debe tener conectividad de red a 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 Azure Managed Lustre Virtual Network.
  • Use la opción Bring Your Own Networking en AKS para instalar AKS en una nueva subred en Azure Managed Lustre Virtual Network.

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 de emparejar dos redes virtuales diferentes tiene la ventaja de separar la administración de las distintas redes a distintos roles con privilegios. El emparejamiento también puede proporcionar flexibilidad adicional, ya que se puede realizar en suscripciones o regiones de Azure. El emparejamiento de redes virtuales requerirá coordinación entre las dos redes para evitar elegir espacios de red IP en conflicto.

Diagrama que muestra dos redes virtuales, una para Azure Managed Lustre y otra para AKS, con una flecha de emparejamiento de red virtual que los 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 Bring Your Own Network en AKS puede ser ventajoso en los escenarios en los que la red se administra singularmente. Será necesario crear una subred adicional para cumplir 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 Azure Managed Lustre Network y la entidad de servicio de AKS necesitará privilegios en la red virtual de Azure Managed Lustre.

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

Descripción general de la configuración

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

  1. Creación de un sistema de archivos de Azure Managed Lustre

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

  3. Creación de emparejamiento de redes virtuales

  4. Instale azure Managed Lustre CSI Driver for Kubernetes.

  5. Cree y configure un volumen persistente.

  6. Compruebe la instalación si usa opcionalmente un pod de eco para confirmar que el controlador funciona.

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

Creación de un 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 en 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).

Creación del emparejamiento de red virtual

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 al clúster de AKS en Azure Portal, elija la hoja Propiedades y busque el grupo de recursos Infraestructura . Este grupo de recursos contiene la red virtual que debe emparejarse con la red virtual de Azure Managed Lustre. Coincide con el patrón MC_aks-rg-name>_<aks-cluster-name>_<region>.<

Consulte Emparejamiento de redes virtuales para emparejar la red virtual de AKS con la red virtual de Lustre de Azure.

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, preste mucha atención a que elija las redes de AKS que quiere elegir.

Conexión al clúster de AKS

Para conectarse al clúster de Azure Kubernetes Service, siga estos pasos:

  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. Seleccione la hoja Información general y, a continuación, seleccione el botón Conectar y copie el comando para Descargar credenciales del clúster.

  4. En la sesión de terminal, pegue el comando para descargar las credenciales. Será un comando similar al siguiente:

    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 que 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 CSI

Para instalar el controlador CSI, ejecute el siguiente comando:

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

Para ver ejemplos de comandos de instalación local, consulte Instalación de Azure Lustre CSI Driver 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, siga estos pasos:

  1. Copie los siguientes archivos de configuración de la carpeta /docs/examples/ en el repositorio azurelustre-csi-driver . Si ha clonado el repositorio al instalar el controlador CSI, 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 MSG.

    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 la página Conexión de cliente del sistema de archivos de Azure Lustre.

    Captura de pantalla de la página Conexión de cliente de Azure Portal. 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 la página Conexión de cliente. El nombre interno del clúster de Lustre está resaltado.

    • Reemplace por EXISTING_LUSTRE_IP_ADDRESS la dirección IP de MSG.

  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 kubectl comando:

    `kubectl logs -f lustre-echo-date`
    

Pasos siguientes