Delen via


Het Azure Managed Lustre CSI-stuurprogramma gebruiken met Azure Kubernetes Service

In dit artikel wordt beschreven hoe u Azure Managed Lustre in Azure Kubernetes Service (AKS) plant, installeert en gebruikt met het Azure Managed Lustre Kubernetes-stuurprogramma voor containerondersteuningsinterface (Azure Managed Lustre CSI-stuurprogramma).

Over het Azure Managed Lustre CSI-stuurprogramma voor AKS

Met het CSI-stuurprogramma (Azure Managed Lustre Container Support Interface) voor AKS hebt u toegang tot Azure Managed Lustre Storage als permanente opslagvolumes vanuit Kubernetes-containers die zijn geïmplementeerd in Azure Kubernetes Service (AKS).

Compatibele Kubernetes-versies

Het Azure Managed Lustre CSI-stuurprogramma voor AKS is compatibel met Azure Kubernetes Service (AKS). Andere Kubernetes-installaties worden momenteel niet ondersteund.

AKS Kubernetes versie 1.21 en hoger worden ondersteund. Dit omvat alle versies die momenteel beschikbaar zijn bij het maken van een nieuw AKS-cluster.

Belangrijk

Het Azure Managed Lustre CSI-stuurprogramma werkt momenteel alleen met de Ubuntu Linux OS-SKU voor knooppuntgroepen van AKS.

Compatibele Lustre-versies

Het Azure Managed Lustre CSI-stuurprogramma voor AKS is compatibel met Azure Managed Lustre. Andere Lustre-installaties worden momenteel niet ondersteund.

De Azure Managed Lustre CSI-stuurprogrammaversies 0.1.10 en hoger worden ondersteund met de huidige versie van de Azure Managed Lustre-service.

Vereisten

Uw AKS-implementatie plannen

Er zijn verschillende opties bij het implementeren van Azure Kubernetes Service die van invloed zijn op de bewerking tussen AKS en Azure Managed Lustre.

Bepaal het netwerktype dat moet worden gebruikt met AKS

Er zijn twee netwerktypen die compatibel zijn met de Ubuntu Linux OS-SKU, kubenet en het stuurprogramma Azure Container Network Interface (CNI). Beide opties werken met het Azure Managed Lustre CSI-stuurprogramma voor AKS, maar ze hebben verschillende vereisten die moeten worden begrepen bij het instellen van virtuele netwerken en AKS. Zie Netwerkconcepten voor toepassingen in Azure Kubernetes Service (AKS) voor meer informatie over het bepalen van de juiste selectie.

Netwerkarchitectuur bepalen voor interconnectiviteit van AKS en Azure Managed Lustre

Azure Managed Lustre werkt binnen een virtueel privénetwerk. Uw Kubernetes moet een netwerkverbinding hebben met het virtuele azure managed lustre-netwerk. Er zijn twee veelgebruikte manieren om het netwerk tussen Azure Managed Lustre en AKS te configureren.

  • Installeer AKS in een eigen Virtual Network en maak een peering voor een virtueel netwerk met de Azure Managed Lustre-Virtual Network.
  • Gebruik de optie Bring Your Own Networking in AKS om AKS te installeren op een nieuw subnet op de Azure Managed Lustre-Virtual Network.

Notitie

Het installeren van AKS op hetzelfde subnet als Azure Managed Lustre wordt niet aanbevolen.

Peering van virtuele AKS- en Azure Managed Lustre-netwerken

De optie voor het peeren van twee verschillende virtuele netwerken heeft als voordeel dat het beheer van de verschillende netwerken wordt gescheiden door verschillende bevoorrechte rollen. Peering kan ook extra flexibiliteit bieden, omdat deze kan worden gemaakt in Azure-abonnementen of -regio's. Virtual Network peering vereist coördinatie tussen de twee netwerken om te voorkomen dat conflicterende IP-netwerkruimten worden gekozen.

Diagram van twee VNets, één voor Azure Managed Lustre en één voor AKS, met een VNet-peeringpijl die ze verbindt.

AKS installeren in een subnet in het virtuele azure Managed Lustre-netwerk

De optie voor het installeren van het AKS-cluster in het virtuele Azure Managed Lustre-netwerk met de functie Bring Your Own Network in AKS kan voordelig zijn wanneer u scenario's wilt gebruiken waarin het netwerk afzonderlijk wordt beheerd. Er moet een extra subnet worden gemaakt om te voldoen aan uw AKS-netwerkvereisten in het virtuele netwerk Azure Managed Lustre.

Er is geen scheiding van bevoegdheden voor netwerkbeheer bij het inrichten van AKS in het Azure Managed Lustre Network en de AKS-service-principal heeft bevoegdheden nodig op het virtuele azure managed lustre-netwerk.

Diagram met Azure Managed Lustre VNet met twee subnetten, één voor het Bestandssysteem van Lustre en één voor AKS.

Overzicht van het instellen

Voer de volgende stappen uit om het Azure Managed Lustre CSI-stuurprogramma voor Kubernetes in te schakelen:

  1. Een Azure Managed Lustre-bestandssysteem maken

  2. Een AKS Kubernetes-cluster maken

  3. Peering voor virtuele netwerken maken

  4. Installeer het Azure Managed Lustre CSI-stuurprogramma voor Kubernetes.

  5. Een permanent volume maken en configureren.

  6. Controleer de installatie door optioneel een echopod te gebruiken om te controleren of het stuurprogramma werkt.

In de volgende secties wordt elke taak uitgebreider beschreven.

Een Azure Managed Lustre-bestandssysteem maken

Als u uw Azure Managed Lustre-bestandssysteemcluster nog niet hebt gemaakt, maakt u het cluster nu. Zie Een Azure Managed Lustre-bestandssysteem maken in de Azure Portal voor instructies. Op dit moment kan het stuurprogramma alleen worden gebruikt met een bestaand Azure Managed Lustre-bestandssysteem.

Een AKS-cluster maken

Als u uw AKS-cluster nog niet hebt gemaakt, maakt u een clusterimplementatie. Zie Een AKS-cluster (Azure Kubernetes Service) implementeren.

Peering voor virtuele netwerken maken

Notitie

Sla deze stap voor netwerkpeering over als u AKS hebt geïnstalleerd in een subnet in het virtuele netwerk Azure Managed Lustre.

Het virtuele AKS-netwerk wordt gemaakt in een afzonderlijke resourcegroep van de resourcegroep van het AKS-cluster. U kunt de naam van deze resourcegroep vinden door naar uw AKS-cluster in Azure Portal te gaan en de blade Eigenschappen te kiezen en de resourcegroep Infrastructuur te zoeken. Deze resourcegroep bevat het virtuele netwerk dat moet worden gekoppeld aan het virtuele netwerk Azure Managed Lustre. Het komt overeen met het patroon MC_<aks-rg-name>_<aks-cluster-name>_<region>.

Raadpleeg Virtual Network Peering om het virtuele AKS-netwerk te peeren met uw virtuele netwerk Azure Manages Lustre.

Tip

Vanwege de naamgeving van de MC_ resourcegroepen en virtuele netwerken, kunnen namen van netwerken vergelijkbaar of hetzelfde zijn voor meerdere AKS-implementaties. Let bij het instellen van peering goed op dat u de AKS-netwerken kiest die u wilt kiezen.

Verbinding maken met het AKS-cluster

Maak verbinding met het Azure Kubernetes Service cluster door de volgende stappen uit te voeren:

  1. Open een terminalsessie met toegang tot de Azure CLI-hulpprogramma's en meld u aan bij uw Azure-account.

    az login
    
  2. Meld u aan bij de Azure Portal.

  3. Zoek uw AKS-cluster. Selecteer de blade Overzicht , selecteer vervolgens de knop Verbinding maken en kopieer de opdracht voor Clusterreferenties downloaden.

  4. Plak in de terminalsessie de opdracht om de referenties te downloaden. Het is een opdracht die vergelijkbaar is met:

    az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
    
  5. Installeer kubectl als deze niet aanwezig is in uw omgeving.

    az aks install-cli
    
  6. Controleer of de huidige context het AKS-cluster is waarop u de referenties zojuist hebt geïnstalleerd en of u er verbinding mee kunt maken:

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

Het CSI-stuurprogramma installeren

Voer de volgende opdracht uit om het CSI-stuurprogramma te installeren:

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

Zie Azure Lustre CSI-stuurprogramma installeren op een Kubernetes-cluster voor voorbeelden van lokale installatieopdrachten.

Een permanent volume maken en configureren

Voer de volgende stappen uit om een permanent volume te maken voor een bestaand Azure Managed Lustre-bestandssysteem:

  1. Kopieer de volgende configuratiebestanden uit de map /docs/examples/ in de opslagplaats azurelustre-csi-driver . Als u de opslagplaats hebt gekloond toen u het CSI-stuurprogramma installeerde, zijn er al lokale kopieën beschikbaar.

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

    Als u niet de hele opslagplaats wilt klonen, kunt u elk bestand afzonderlijk downloaden. Open elk van de volgende koppelingen, kopieer de inhoud van het bestand en plak de inhoud in een lokaal bestand met dezelfde bestandsnaam.

  2. Werk in het bestand storageclass_existing_lustre.yaml de interne naam van het Lustre-cluster en het MSG-IP-adres bij.

    Schermopname van storageclass_existing_lustre.yaml-bestand met waarden die moeten worden vervangen gemarkeerd.

    Beide instellingen worden weergegeven in de Azure Portal, op de pagina Clientverbinding voor uw Azure Lustre-bestandssysteem.

    Schermopname van de pagina Azure Portal Clientverbinding. Het IP-adres van MGS en de naam 'lustrefs' in de koppelingsopdracht zijn gemarkeerd.

    Breng de volgende updates aan:

    • Vervang door EXISTING_LUSTRE_FS_NAME de door het systeem toegewezen interne naam van het Lustre-cluster in uw Azure Managed Lustre-bestandssysteem. De interne naam is meestal lustrefs. De interne naam is niet de naam die u aan het bestandssysteem hebt gegeven toen u het maakte.

      De voorgestelde mount opdracht bevat de naam die is gemarkeerd in de volgende adrestekenreeks.

      Schermopname van een voorbeeld van een adrestekenreeks op de pagina Clientverbinding. De interne naam van het Lustre-cluster is gemarkeerd.

    • Vervang door EXISTING_LUSTRE_IP_ADDRESS het IP-adres van MSG.

  3. Voer de volgende kubectl opdracht uit om de opslagklasse en de permanente volumeclaim te maken:

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

De installatie controleren

Als u uw installatie wilt controleren, kunt u eventueel een echopod gebruiken om te bevestigen dat het stuurprogramma werkt.

Voer de volgende opdrachten uit om tijdstempels in de console weer te geven tijdens schrijfbewerkingen:

  1. Voeg de volgende code toe aan de echopod:

    while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
    
  2. Voer de volgende kubectl opdracht uit om tijdstempels in de console weer te geven tijdens schrijfbewerkingen:

    `kubectl logs -f lustre-echo-date`
    

Volgende stappen