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
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un entorno de terminal con las herramientas de la CLI de Azure instaladas. Consulte Introducción a la CLI de Azure.
- kubectl, la herramienta de administración de Kubernetes, instalada en el entorno de terminal. Consulte Inicio rápido: Implementación de un clúster de Azure Kubernetes Service (AKS) mediante la CLI de Azure.
- Una implementación de Azure Managed Lustre. Consulte la documentación de Azure Managed Lustre.
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.
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.
Configuración del controlador
Para habilitar azure Lustre CSI Driver for Kubernetes, siga estos pasos:
Crea un clúster del sistema de archivos Azure Managed Lustre.
Cree y configure un volumen persistente.
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
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
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
Inicie sesión en Azure Portal.
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.
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>
Instale kubectl si no está presente en su entorno:
az aks install-cli
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:
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.
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). Ambas opciones se muestran en Azure Portal, en el panel Conexión de cliente del sistema de archivos de Azure Managed Lustre.
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 serlustrefs
. 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.Reemplace
EXISTING_LUSTRE_IP_ADDRESS
por la dirección IP mgS.
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:
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
Para ver las marcas de tiempo en la consola durante las escrituras, ejecute el siguiente comando
kubectl
:`kubectl logs -f lustre-echo-date`