Partager via


Utiliser le pilote CSI Azure Managed Lustre avec Azure Kubernetes Service

Dans cet article, vous apprenez à planifier, installer et utiliser Azure Managed Lustre dans Azure Kubernetes Service (AKS) avec le pilote Azure Lustre CSI pour Kubernetes. Ce pilote est basé sur la spécification CSI (Container Support Interface).

Vous pouvez utiliser le pilote CSI Azure Lustre pour Kubernetes pour accéder au stockage Azure Managed Lustre en tant que volumes de stockage persistants à partir de conteneurs Kubernetes déployés dans AKS.

Versions de Kubernetes compatibles

Le pilote CSI Azure Lustre pour Kubernetes est compatible avec AKS. Les autres installations Kubernetes ne sont actuellement pas prises en charge.

Les versions 1.21 et ultérieures d’AKS Kubernetes sont prises en charge. Cette prise en charge inclut toutes les versions actuellement disponibles lorsque vous créez un cluster AKS.

Important

Le pilote CSI Azure Lustre pour Kubernetes fonctionne actuellement uniquement avec la référence SKU du système d’exploitation Linux Ubuntu pour les pools de nœuds d’AKS.

Versions compatibles de Lustre

Le pilote CSI Azure Lustre pour Kubernetes est compatible avec Azure Managed Lustre. Les autres installations de Lustre ne sont actuellement pas prises en charge.

Le pilote CSI Azure Lustre pour Kubernetes versions 0.1.10 et ultérieures est pris en charge avec la version actuelle du service Azure Managed Lustre.

Prérequis

Planifier votre déploiement AKS

Lorsque vous déployez Azure Kubernetes Service, plusieurs options affectent l’opération entre AKS et Azure Managed Lustre.

Déterminer le type de réseau à utiliser avec AKS

Deux types de réseau sont compatibles avec la référence SKU du système d’exploitation Linux Ubuntu : kubenet et le pilote CNI (Azure Container Network Interface). Les deux options fonctionnent avec le pilote CSI Azure Lustre pour Kubernetes, mais elles ont des exigences différentes que vous devez comprendre quand vous configurez la mise en réseau virtuelle et AKS. Pour plus d’informations sur la détermination de la sélection appropriée, consultez Concepts de mise en réseau pour les applications dans Azure Kubernetes Service (AKS).

Déterminer l’architecture réseau pour l’interconnexion d’AKS et d’Azure Managed Lustre

Azure Managed Lustre fonctionne dans un réseau virtuel privé. Votre instance AKS doit disposer d’une connectivité réseau au réseau virtuel Azure Managed Lustre. Il existe deux façons courantes de configurer la mise en réseau entre Azure Managed Lustre et AKS :

  • Installez AKS dans son propre réseau virtuel et créez un réseau virtuel en peering avec le réseau virtuel Azure Managed Lustre.
  • Utilisez l'option Apportez votre propre réseau virtuel Azure dans AKS pour installer AKS dans un nouveau sous-réseau sur le réseau virtuel Azure Managed Lustre.

Remarque

Nous vous déconseillons d’installer AKS dans le même sous-réseau qu’Azure Managed Lustre.

Peering AKS et réseaux virtuels Azure Managed Lustre

L'option d'homologue deux réseaux virtuels présente l'avantage de séparer la gestion des réseaux en différents rôles privilégiés. Le peering peut également fournir une flexibilité supplémentaire, car vous pouvez l’implémenter dans les abonnements ou régions Azure. Le peering de réseaux virtuels nécessite une coordination entre les deux réseaux pour éviter de choisir des espaces réseau IP en conflit.

Diagramme montrant deux réseaux virtuels, un pour Azure Managed Lustre et un pour AKS, avec une flèche de peering qui les connecte.

Installation d’AKS dans un sous-réseau sur le réseau virtuel Azure Managed Lustre

L’option d’installation du cluster AKS dans le réseau virtuel Azure Managed Lustre avec l'Bring your own Azure virtual network feature in AKS peut être avantageuse dans les scénarios où le réseau est géré au singulier. Vous devez créer un sous-réseau supplémentaire, dimensionné pour répondre à vos besoins en réseau AKS, dans le réseau virtuel Azure Managed Lustre.

Il n’existe aucune séparation des privilèges pour la gestion du réseau lorsque vous approvisionnez AKS sur le réseau virtuel Azure Managed Lustre. Le principal de service AKS a besoin de privilèges sur le réseau virtuel Azure Managed Lustre.

Diagramme montrant un réseau virtuel Azure Managed Lustre avec deux sous-réseaux, un pour le système de fichiers Lustre et un pour AKS.

Configurer le pilote

Pour activer le pilote CSI Azure Lustre pour Kubernetes, procédez comme suit :

  1. Créer un cluster de système de fichiers Azure Managed Lustre.

  2. Créez un cluster AKS.

  3. Créez un homologue de réseau virtuel.

  4. Installer le pilote.

  5. Créez et configurez un volume persistant.

  6. Vérifiez l'installation en utilisant éventuellement un pod d'écho pour confirmer que le pilote fonctionne.

Les sections suivantes décrivent plus en détail chaque tâche.

Créer un cluster de système de fichiers Azure Managed Lustre

Si vous n’avez pas encore créé votre cluster de système de fichiers Azure Managed Lustre, créez le cluster maintenant. Pour obtenir des instructions, consultez Créer un système de fichiers Azure Managed Lustre à l’aide du portail Azure. Actuellement, le pilote ne peut être utilisé qu’avec un système de fichiers Azure Managed Lustre existant.

Créer un cluster AKS

Si vous n’avez pas encore créé votre cluster AKS, créez un déploiement de cluster. Consultez Déployer un cluster Azure Kubernetes Service (AKS) à l’aide du portail Azure.

Créer un peering de réseaux virtuels

Remarque

Ignorez cette étape de peering réseau si vous avez installé AKS dans un sous-réseau sur le réseau virtuel Azure Managed Lustre.

Le réseau virtuel AKS est créé dans un groupe de ressources distinct du groupe de ressources du cluster AKS. Vous trouverez le nom de ce groupe de ressources en accédant à votre cluster AKS dans le portail Azure, en accédant à Propriétéset en recherchant le groupe de ressources infrastructure . Ce groupe de ressources contient le réseau virtuel qui doit être associé au réseau virtuel Azure Managed Lustre. Il correspond au modèle >.

Pour homologue le réseau virtuel AKS avec votre réseau virtuel Azure Managed Lustre, consultez Peering de réseau virtuel.

Conseil

En raison du nommage des groupes de ressources et des réseaux virtuels MC_, les noms de réseaux peuvent être similaires ou identiques dans plusieurs déploiements AKS. Lorsque vous configurez le peering, veillez à choisir les réseaux AKS que vous envisagez de choisir.

Se connecter au cluster AKS

  1. Ouvrez une session de terminal avec accès aux outils Azure CLI et connectez-vous à votre compte Azure :

    az login
    
  2. Connectez-vous au portail Azure.

  3. Recherchez votre cluster AKS. Dans le volet Vue d'ensemble, sélectionnez le bouton Connecter, puis copiez la commande de téléchargement des informations d'identification du cluster.

  4. Dans votre session de terminal, collez la commande pour télécharger les informations d’identification. La commande est similaire à :

    az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
    
  5. Installez kubectl s’il n’est pas présent dans votre environnement :

    az aks install-cli
    
  6. Vérifiez que le contexte actuel est le cluster AKS où vous venez d’installer les informations d’identification et que vous pouvez vous y connecter :

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

Installer le pilote

Pour installer le pilote CSI Azure Lustre pour Kubernetes, exécutez la commande suivante :

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

Pour obtenir des exemples de commandes pour une installation locale, consultez Installer le pilote CSI Azure Lustre sur un cluster Kubernetes.

Créer et configurer un volume persistant

Pour créer un volume persistant pour un système de fichiers Azure Managed Lustre existant :

  1. Copiez les fichiers de configuration suivants à partir du dossier /docs/examples/ dans le référentiel azurelustre-csi-driver . Si vous avez cloné le référentiel lorsque vous installé le pilote, vous disposez déjà de copies locales.

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

    Si vous ne souhaitez pas cloner l’intégralité du référentiel, vous pouvez télécharger chaque fichier individuellement. Ouvrez chacun des liens suivants, copiez le contenu du fichier, puis collez le contenu dans un fichier local portant le même nom de fichier.

  2. Dans le fichier storageclass_existing_lustre.yaml, mettez à jour le nom interne du cluster Lustre et l’adresse IP mgS (Lustre Management Service).

    Capture d’écran du fichier storageclass_existing_lustre.yaml avec des valeurs à remplacer en surlignage.

    Les deux paramètres s’affichent dans le portail Azure, dans le volet connexion cliente pour votre système de fichiers Azure Managed Lustre.

    Capture d'écran du volet de connexion client dans le portail Azure. L'adresse IP de MGS et le nom « lustrefs » dans la commande mount sont mis en évidence.

    Effectuez ces mises à jour :

    • Remplacez EXISTING_LUSTRE_FS_NAME par le nom interne attribué par le système du cluster Lustre dans votre système de fichiers Azure Managed Lustre. Le nom interne est généralement lustrefs. Le nom interne n’est pas le nom que vous avez donné au système de fichiers lors de sa création.

      La commande suggérée mount inclut le nom mis en surbrillance dans la chaîne d’adresse suivante.

      Capture d’écran d’un exemple de chaîne d’adresse dans le volet pour la connexion du client. Le nom interne du cluster Lustre est mis en surbrillance.

    • Remplacez EXISTING_LUSTRE_IP_ADDRESS par l’adresse IP MGS.

  3. Pour créer la classe de stockage et la revendication de volume persistant, exécutez la commande suivante kubectl :

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

Vérifier l’installation

Si vous souhaitez vérifier votre installation, vous pouvez éventuellement utiliser un pod echo pour confirmer que le pilote fonctionne.

Pour afficher les horodatages dans la console pendant les écritures, exécutez les commandes suivantes :

  1. Ajoutez le code suivant au pod echo :

    while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
    
  2. Pour afficher les horodatages dans la console pendant les écritures, exécutez la commande kubectl suivante :

    `kubectl logs -f lustre-echo-date`