Uso del controlador CSI de Azure Managed Lustre con Azure Kubernetes Service
En este artículo se describe cómo 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 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 Kubernetes de AKS. Esto incluye todas las versiones disponibles actualmente al crear un nuevo clúster de AKS.
Importante
Actualmente, el controlador CSI de Azure Managed Lustre solo funciona 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.10 y posteriores del controlador CSI de Azure Managed Lustre son compatibles 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, se instala 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
- Cree una implementación de Azure Managed Lustre. Consulte la documentación del sistema de archivos de Lustre administrado de Azure.
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 que son compatibles con la SKU del sistema operativo Ubuntu Linux, kubenet y el controlador de la interfaz de red de contenedor de Azure (CNI). 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 obtener 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 Virtual Network y cree un emparejamiento de red virtual con el Virtual Network de Azure Managed Lustre.
- Use la opción Bring your Own Networking en AKS para instalar AKS en una nueva subred en la Virtual Network de Azure Managed Lustre.
Nota
No se recomienda instalar AKS en la misma subred que Azure Managed Lustre.
Emparejamiento de redes virtuales de AKS y 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. Virtual Network emparejamiento requerirá 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 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 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 Azure Managed Lustre Network y la entidad de servicio de AKS necesitará privilegios en la red virtual de Azure Managed Lustre.
Información general de la instalación
Para habilitar azure Managed Lustre CSI Driver for Kubernetes, siga estos pasos:
Instale el controlador CSI de Azure Managed Lustre para Kubernetes.
Compruebe la instalación mediante el uso opcional de 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 el 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 de 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 Virtual Network Emparejamiento para emparejar la red virtual de AKS con la red virtual de Azure Manages Lustre.
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:
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. 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.
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>
Instale kubectl si no está presente en su entorno.
az aks install-cli
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 obtener ejemplos de comandos de 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, siga estos pasos:
Copie los siguientes archivos de configuración de la carpeta /docs/examples/ del 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.
En el archivo storageclass_existing_lustre.yaml , actualice el nombre interno del clúster de Lustre y la dirección IP de MSG.
Ambas opciones se muestran en el Azure Portal, en la página Conexión de cliente del sistema de archivos de Azure 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 por
EXISTING_LUSTRE_IP_ADDRESS
la dirección IP de MSG.
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
Comprobar 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
kubectl
comando:`kubectl logs -f lustre-echo-date`