Freigeben über


Verwenden des Azure Managed Lustre CSI-Treibers mit Azure Kubernetes Service

In diesem Artikel wird beschrieben, wie Sie Azure Managed Lustre in Azure Kubernetes Service (AKS) mit dem Azure Managed Lustre Kubernetes-Containerunterstützungsschnittstellentreiber (Azure Managed Lustre CSI-Treiber) planen, installieren und verwenden.

Informationen zum Azure Managed Lustre CSI-Treiber für AKS

Der CSI-Treiber (Azure Managed Lustre Container Support Interface) für AKS ermöglicht Ihnen den Zugriff auf Azure Managed Lustre Storage als persistente Speichervolumes von Kubernetes-Containern, die in Azure Kubernetes Service (AKS) bereitgestellt werden.

Kompatible Kubernetes-Versionen

Der Azure Managed Lustre CSI-Treiber für AKS ist mit Azure Kubernetes Service (AKS) kompatibel. Andere Kubernetes-Installationen werden derzeit nicht unterstützt.

AKS Kubernetes, Versionen 1.21 und höher, werden unterstützt. Dies schließt alle versionen ein, die derzeit beim Erstellen eines neuen AKS-Clusters verfügbar sind.

Wichtig

Der Azure Managed Lustre CSI-Treiber funktioniert derzeit nur mit der Ubuntu Linux OS SKU für Knotenpools von AKS.

Kompatible Lustre-Versionen

Der Azure Managed Lustre CSI-Treiber für AKS ist mit Azure Managed Lustre kompatibel. Andere Lustre-Installationen werden derzeit nicht unterstützt.

Die Azure Managed Lustre CSI-Treiberversionen 0.1.10 und höher werden mit der aktuellen Version des Azure Managed Lustre-Diensts unterstützt.

Voraussetzungen

Planen der AKS-Bereitstellung

Beim Bereitstellen von Azure Kubernetes Service gibt es mehrere Optionen, die sich auf den Vorgang zwischen AKS und Azure Managed Lustre auswirken.

Bestimmen des Netzwerktyps, der mit AKS verwendet werden soll

Es gibt zwei Netzwerktypen, die mit der Ubuntu Linux-Betriebssystem-SKU kompatibel sind: kubenet und der CNI-Treiber (Azure Container Network Interface). Beide Optionen funktionieren mit dem Azure Managed Lustre CSI-Treiber für AKS, haben jedoch unterschiedliche Anforderungen, die beim Einrichten von virtuellen Netzwerken und AKS verstanden werden müssen. Weitere Informationen zum Bestimmen der richtigen Auswahl finden Sie unter Netzwerkkonzepte für Anwendungen in Azure Kubernetes Service (AKS).

Ermitteln der Netzwerkarchitektur für die Interkonnektivität von AKS und Azure Managed Lustre

Azure Managed Lustre arbeitet in einem privaten virtuellen Netzwerk. Ihr Kubernetes muss über Netzwerkkonnektivität mit dem virtuellen Azure Managed Lustre-Netzwerk verfügen. Es gibt zwei gängige Methoden zum Konfigurieren des Netzwerks zwischen Azure Managed Lustre und AKS.

  • Installieren Sie AKS in seiner eigenen Virtual Network, und erstellen Sie ein Peering virtueller Netzwerke mit dem Azure Managed Lustre-Virtual Network.
  • Verwenden Sie die Option Bring Your Own Networking in AKS, um AKS in einem neuen Subnetz im Azure Managed Lustre-Virtual Network zu installieren.

Hinweis

Die Installation von AKS im selben Subnetz wie Azure Managed Lustre wird nicht empfohlen.

Peering von virtuellen AKS- und Azure Managed Lustre-Netzwerken

Die Möglichkeit, zwei verschiedene virtuelle Netzwerke zu peeren, hat den Vorteil, dass die Verwaltung der verschiedenen Netzwerke auf verschiedene privilegierte Rollen unterteilt wird. Peering kann auch zusätzliche Flexibilität bieten, da es über Azure-Abonnements oder -Regionen hinweg erfolgen kann. Virtual Network Peering erfordert eine Koordination zwischen den beiden Netzwerken, um zu vermeiden, dass in Konflikt stehende IP-Netzwerkräume ausgewählt werden.

Diagramm, das zwei VNets zeigt, eines für Azure Managed Lustre und eines für AKS mit einem VNET-Peeringpfeil, der sie verbindet.

Installieren von AKS in einem Subnetz im virtuellen Azure Managed Lustre-Netzwerk

Die Option zum Installieren des AKS-Clusters im virtuellen Azure Managed Lustre-Netzwerk mit dem Feature Bring Your Own Network in AKS kann von Vorteil sein, wenn Sie Szenarien wünschen, in denen das Netzwerk singulär verwaltet wird. Ein zusätzliches Subnetz muss im virtuellen Azure Managed Lustre-Netzwerk erstellt werden, um Ihre AKS-Netzwerkanforderungen zu erfüllen.

Es gibt keine Rechtetrennung für die Netzwerkverwaltung, wenn AKS im Azure Managed Lustre Network bereitgestellt wird, und der AKS-Dienstprinzipal benötigt Berechtigungen für das virtuelle Azure Managed Lustre-Netzwerk.

Diagramm: Azure Managed Lustre-VNet mit zwei Subnetzen, eines für das Lustre-Dateisystem und eines für AKS.

Übersicht über das Setup

Führen Sie die folgenden Schritte aus, um den Azure Managed Lustre CSI-Treiber für Kubernetes zu aktivieren:

  1. Erstellen eines Azure Managed Lustre-Dateisystems

  2. Erstellen eines AKS-Kubernetes-Clusters

  3. Erstellen eines Peerings virtueller Netzwerke

  4. Installieren Sie den Azure Managed Lustre CSI-Treiber für Kubernetes.

  5. Erstellen und konfigurieren Sie ein persistentes Volume.

  6. Überprüfen Sie die Installation , indem Sie optional einen Echopod verwenden, um zu bestätigen, dass der Treiber funktioniert.

In den folgenden Abschnitten werden die einzelnen Aufgaben ausführlicher beschrieben.

Erstellen eines Azure Managed Lustre-Dateisystems

Wenn Sie Ihren Azure Managed Lustre-Dateisystemcluster noch nicht erstellt haben, erstellen Sie den Cluster jetzt. Anweisungen finden Sie unter Erstellen eines Azure Managed Lustre-Dateisystems im Azure-Portal. Derzeit kann der Treiber nur mit einem vorhandenen Azure Managed Lustre-Dateisystem verwendet werden.

Erstellen eines AKS-Clusters

Wenn Sie Ihren AKS-Cluster noch nicht erstellt haben, erstellen Sie eine Clusterbereitstellung. Weitere Informationen finden Sie unter Bereitstellen eines AKS-Clusters (Azure Kubernetes Service).

Erstellen eines Peerings virtueller Netzwerke

Hinweis

Überspringen Sie diesen Netzwerkpeeringschritt, wenn Sie AKS in einem Subnetz im virtuellen Azure Managed Lustre-Netzwerk installiert haben.

Das virtuelle AKS-Netzwerk wird in einer separaten Ressourcengruppe von der Ressourcengruppe des AKS-Clusters erstellt. Sie finden den Namen dieser Ressourcengruppe, indem Sie im Azure-Portal zu Ihrem AKS-Cluster wechseln, indem Sie das Blatt Eigenschaften auswählen und die Ressourcengruppe Infrastruktur suchen. Diese Ressourcengruppe enthält das virtuelle Netzwerk, das mit dem virtuellen Azure Managed Lustre-Netzwerk gekoppelt werden muss. Es entspricht dem Muster MC_<aks-rg-name>_<aks-cluster-name>_<region>.

Wenden Sie sich Virtual Network Peering an, um das virtuelle AKS-Netzwerk mit Ihrem virtuellen Azure Verwaltet Lustre-Netzwerk zu peeren.

Tipp

Aufgrund der Benennung der MC_ Ressourcengruppen und virtuellen Netzwerken können Namen von Netzwerken in mehreren AKS-Bereitstellungen ähnlich oder gleich sein. Achten Sie beim Einrichten des Peerings darauf, dass Sie die AKS-Netzwerke auswählen, die Sie auswählen möchten.

Herstellen einer Verbindung mit dem AKS-Cluster

Führen Sie die folgenden Schritte aus, um eine Verbindung mit dem Azure Kubernetes Service-Cluster herzustellen:

  1. Öffnen Sie eine Terminalsitzung mit Zugriff auf die Azure CLI-Tools, und melden Sie sich bei Ihrem Azure-Konto an.

    az login
    
  2. Melden Sie sich beim Azure-Portal an.

  3. Suchen Sie Ihren AKS-Cluster. Wählen Sie das Blatt Übersicht aus, wählen Sie dann die Schaltfläche Verbinden aus, und kopieren Sie den Befehl für Clusteranmeldeinformationen herunterladen.

  4. Fügen Sie in Ihrer Terminalsitzung den Befehl ein, um die Anmeldeinformationen herunterzuladen. Es wird ein Befehl ähnlich wie folgt sein:

    az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
    
  5. Installieren Sie kubectl, wenn es in Ihrer Umgebung nicht vorhanden ist.

    az aks install-cli
    
  6. Stellen Sie sicher, dass der aktuelle Kontext der AKS-Cluster ist, den Sie gerade installiert haben, und dass Sie eine Verbindung damit herstellen können:

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

Installieren des CSI-Treibers

Führen Sie den folgenden Befehl aus, um den CSI-Treiber zu installieren:

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

Beispiele für lokale Installationsbefehle finden Sie unter Installieren des Azure Lustre CSI-Treibers in einem Kubernetes-Cluster.

Erstellen und Konfigurieren eines persistenten Volumes

Führen Sie die folgenden Schritte aus, um ein persistentes Volume für ein vorhandenes Azure Managed Lustre-Dateisystem zu erstellen:

  1. Kopieren Sie die folgenden Konfigurationsdateien aus dem Ordner /docs/examples/ im Repository azurelustre-csi-driver . Wenn Sie das Repository bei der Installation des CSI-Treibers geklont haben, sind bereits lokale Kopien verfügbar.

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

    Wenn Sie nicht das gesamte Repository klonen möchten, können Sie jede Datei einzeln herunterladen. Öffnen Sie die folgenden Links, kopieren Sie den Inhalt der Datei, und fügen Sie den Inhalt dann in eine lokale Datei mit demselben Dateinamen ein.

  2. Aktualisieren Sie in der Datei storageclass_existing_lustre.yaml den internen Namen des Lustre-Clusters und die MSG-IP-Adresse.

    Screenshot der Datei storageclass_existing_lustre.yaml mit hervorgehobenen Werten, die ersetzt werden sollen.

    Beide Einstellungen werden im Azure-Portal auf der Seite Clientverbindung für Ihr Azure Lustre-Dateisystem angezeigt.

    Screenshot der Seite

    Nehmen Sie diese Updates vor:

    • Ersetzen Sie durch EXISTING_LUSTRE_FS_NAME den systemseitig zugewiesenen internen Namen des Lustre-Clusters in Ihrem Azure Managed Lustre-Dateisystem. Der interne Name ist normalerweise lustrefs. Der interne Name ist nicht der Name, den Sie dem Dateisystem bei der Erstellung angegeben haben.

      Der vorgeschlagene mount Befehl enthält den namen, der in der folgenden Adresszeichenfolge hervorgehoben ist.

      Screenshot einer Beispieladresszeichenfolge auf der Seite

    • Ersetzen Sie durch EXISTING_LUSTRE_IP_ADDRESS die MSG-IP-Adresse.

  3. Führen Sie den folgenden kubectl Befehl aus, um die Speicherklasse und den Anspruch für persistente Volumes zu erstellen:

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

Überprüfen der Installation

Wenn Sie Ihre Installation überprüfen möchten, können Sie optional einen Echopod verwenden, um zu bestätigen, dass der Treiber funktioniert.

Führen Sie die folgenden Befehle aus, um Zeitstempel während Schreibvorgängen in der Konsole anzuzeigen:

  1. Fügen Sie dem Echopod den folgenden Code hinzu:

    while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
    
  2. Führen Sie den folgenden kubectl Befehl aus, um Zeitstempel während Schreibvorgängen in der Konsole anzuzeigen:

    `kubectl logs -f lustre-echo-date`
    

Nächste Schritte