Verwenden des Azure Managed Lustre CSI-Treibers mit Azure Kubernetes Service
In diesem Artikel erfahren Sie, wie Sie Azure Managed Lustre im Azure Kubernetes Service (AKS) mit dem Azure Lustre CSI-Treiber für Kubernetes planen, installieren und verwenden. Dieser Treiber basiert auf der CSI-Spezifikation (Container Support Interface).
Sie können den Azure Lustre CSI-Treiber für Kubernetes verwenden, um auf Azure Managed Lustre-Speicher als persistente Speichervolumes von Kubernetes-Containern zuzugreifen, die in AKS bereitgestellt werden.
Kompatible Kubernetes-Versionen
Der Azure Lustre CSI-Treiber für Kubernetes ist mit AKSkompatibel. Andere Kubernetes-Installationen werden derzeit nicht unterstützt.
AKS Kubernetes-Versionen 1.21 und höher werden unterstützt. Diese Unterstützung umfasst alle Versionen, die derzeit verfügbar sind, wenn Sie einen neuen AKS-Cluster erstellen.
Wichtig
Der Azure Lustre CSI-Treiber für Kubernetes funktioniert derzeit nur mit der Ubuntu Linux OS SKU für Knotenpools von AKS.
Kompatible Lustre-Versionen
Der Azure Lustre CSI-Treiber für Kubernetes ist mit Azure Managed Lustrekompatibel. Andere Lustre-Installationen werden derzeit nicht unterstützt.
Azure Lustre CSI-Treiber für Kubernetes-Versionen 0.1.10 und höher werden mit der aktuellen Version des Azure Managed Lustre-Diensts unterstützt.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine Terminalumgebung mit installierten Azure CLI-Tools. Siehe Erste Schritte mit der Azure CLI.
- kubectl, das in Ihrer Terminalumgebung installiertes Kubernetes-Verwaltungstool. Siehe Schnellstart: Bereitstellen eines Azure Kubernetes Service (AKS)-Clusters mithilfe der Azure CLI-.
- Eine Azure Managed Lustre-Bereitstellung. Weitere Informationen finden Sie in der Azure Managed Lustre-Dokumentation.
Planen der AKS-Bereitstellung
Wenn Sie Azure Kubernetes Service bereitstellen, wirken sich mehrere Optionen auf den Betrieb zwischen AKS und Azure Managed Lustre aus.
Ermitteln des netzwerktyps, der mit AKS verwendet werden soll
Zwei Netzwerktypen sind mit der Ubuntu Linux OS SKU kompatibel: kubenet und der CNI-Treiber (Azure Container Network Interface). Beide Optionen funktionieren mit dem Azure Lustre CSI-Treiber für Kubernetes, aber sie haben unterschiedliche Anforderungen, die Sie verstehen müssen, wenn Sie virtuelle Netzwerke und AKS einrichten. Weitere Informationen zur richtigen Auswahlentscheidung finden Sie unter Netzwerkkonzepte für Anwendungen in Azure Kubernetes Service (AKS).
Bestimmen Sie die Netzwerkarchitektur für die Vernetzung von AKS und Azure Managed Lustre.
Azure Managed Lustre arbeitet in einem privaten virtuellen Netzwerk. Ihre AKS-Instanz 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 einem eigenen virtuellen Netzwerk und erstellen Sie ein Peering virtueller Netzwerke mit dem virtuellen Netzwerk von Azure Managed Lustre.
- Verwenden Sie die Option Eigenes virtuelles Netzwerk von Azure mitbringen in AKS, um AKS in einem neuen Subnetz im virtuellen Netzwerk von Azure Managed Lustre zu installieren.
Hinweis
Es wird nicht empfohlen, AKS im selben Subnetz wie azure Managed Lustre zu installieren.
Peering AKS und Azure Managed Lustre virtual networks
Die Möglichkeit, zwei virtuelle Netzwerke zu koppeln, hat den Vorteil, die Verwaltung der Netzwerke auf verschiedene privilegierte Rollen zu verteilen. Peering kann auch zusätzliche Flexibilität bieten, da Sie es in Azure-Abonnements oder -Regionen implementieren können. Virtuelles Netzwerk-Peering erfordert eine Koordination zwischen den beiden Netzwerken, um zu vermeiden, dass konfliktende IP-Netzwerkplätze ausgewählt werden.
Installieren von AKS in einem Subnetz im virtuellen Netzwerk von Azure Managed Lustre
Die Option zum Installieren des AKS-Clusters im virtuellen Netzwerk von Azure Managed Lustre mit dem Feature Eigenes virtuelles Netzwerk von Azure mitbringen in AKS kann in Szenarien vorteilhaft sein, in denen das Netzwerk einzeln verwaltet wird. Sie müssen ein zusätzliches Subnetz erstellen, das ihren AKS-Netzwerkanforderungen entspricht, im virtuellen Azure Managed Lustre-Netzwerk.
Es gibt keine Trennung von Berechtigungen bei der Netzwerkverwaltung, wenn Sie AKS im virtuellen Netzwerk von Azure Managed Lustre bereitstellen. Der AKS-Dienstprinzipal benötigt Berechtigungen im virtuellen Netzwerk von Azure Managed Lustre.
Richten Sie den Treiber ein
Führen Sie die folgenden Schritte aus, um den Azure Lustre CSI-Treiber für Kubernetes zu aktivieren:
Überprüfen Sie die Installation, indem Sie optional einen Echo-Pod 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-Dateisystemclusters
Wenn Sie ihren Azure Managed Lustre-Dateisystemcluster noch nicht erstellt haben, erstellen Sie den Cluster jetzt. Weitere Anweisungen finden Sie unter Erstellen eines Azure Managed Lustre-Dateisystems mithilfe des Azure-Portals. Derzeit kann der Treiber nur mit einem vorhandenen Azure Managed Lustre-Dateisystem verwendet werden.
Ein AKS-Cluster erstellen
Wenn Sie Ihren AKS-Cluster noch nicht erstellt haben, erstellen Sie eine Clusterbereitstellung. Siehe Bereitstellen eines Azure Kubernetes Service (AKS)-Clusters mithilfe des Azure-Portals.
Erstellen eines Peerings in virtuellen Netzwerken
Hinweis
Überspringen Sie diesen Netzwerk-Peering-Schritt, 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, dann zu Eigenschaften wechseln und die Ressourcengruppe Infrastruktur auffinden. Diese Ressourcengruppe enthält das virtuelle Netzwerk, das mit dem virtuellen Azure Managed Lustre-Netzwerk gekoppelt werden muss. Es entspricht dem Muster >.
Um das virtuelle AKS-Netzwerk mit Ihrem virtuellen Azure Managed Lustre-Netzwerk zu verknüpfen, konsultieren Sie Peering virtueller Netzwerke.
Tipp
Aufgrund der Benennung der MC_ Ressourcengruppen und virtuellen Netzwerke können Namen von Netzwerken in mehreren AKS-Bereitstellungen ähnlich oder identisch sein. Achten Sie beim Einrichten von Peering darauf, die AKS-Netzwerke auszuwählen, die Sie auswählen möchten.
Herstellen einer Verbindung mit dem AKS-Cluster
Öffnen Sie eine Terminalsitzung mit Zugriff auf die Azure CLI-Tools, und melden Sie sich bei Ihrem Azure-Konto an:
az login
Melden Sie sich beim Azure-Portal an.
Suchen Sie Ihren AKS-Cluster. Wählen Sie im Bereich Übersicht die Schaltfläche Verbinden aus, und kopieren Sie dann den Befehl für Clusteranmeldeinformationen herunterladen.
Fügen Sie in Ihrer Terminalsitzung den Befehl ein, um die Anmeldeinformationen herunterzuladen. Der Befehl ähnelt folgendem:
az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
Installieren Sie Kubectl, wenn sie in Ihrer Umgebung nicht vorhanden ist:
az aks install-cli
Stellen Sie sicher, dass der aktuelle Kontext der AKS-Cluster ist, in dem Sie die Anmeldeinformationen soeben installiert haben und dass Sie eine Verbindung damit herstellen können:
kubectl config current-context kubectl get deployments --all-namespaces=true
Installieren des Treibers
Führen Sie den folgenden Befehl aus, um den Azure Lustre CSI-Treiber für Kubernetes zu installieren:
curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azurelustre-csi-driver/main/deploy/install-driver.sh | bash
Um Beispielbefehle für eine lokale Installation zu erhalten, siehe Azure Lustre CSI-Treiber auf einem Kubernetes-Cluster installieren.
Erstellen und Konfigurieren eines persistenten Volumes
So erstellen Sie ein persistentes Volume für ein vorhandenes Azure Managed Lustre-Dateisystem:
Kopieren Sie die folgenden Konfigurationsdateien aus dem Ordner "/docs/examples/" im Repository "azurelustre-csi-driver ". Wenn Sie das Repository geklont haben, als Sie den Treiber installiert haben, sind bereits lokale Kopien verfügbar.
- storageclass_existing_lustre.yaml
- pvc_storageclass.yaml
Wenn Sie das gesamte Repository nicht klonen möchten, können Sie jede Datei einzeln herunterladen. Öffnen Sie jeden der folgenden Links, kopieren Sie den Inhalt der Datei, und fügen Sie den Inhalt dann in eine lokale Datei mit demselben Dateinamen ein.
Aktualisieren Sie in der Datei storageclass_existing_lustre.yaml den internen Namen des Lustre-Clusters und die IP-Adresse des Lustre Management Service (MGS).
Beide Einstellungen werden im Azure-Portal im Bereich Clientverbindung für Ihr Azure Managed Lustre-Dateisystem angezeigt.
Führen Sie die folgenden Updates aus:
Ersetzen Sie den
EXISTING_LUSTRE_FS_NAME
vom System zugewiesenen internen Namen des Lustre-Clusters in Ihrem Azure Managed Lustre-Dateisystem. Der interne Name ist in der Regellustrefs
. Der interne Name ist nicht der Name, den Sie beim Erstellen des Dateisystems angegeben haben.Der vorgeschlagene
mount
Befehl enthält den in der folgenden Adresszeichenfolge hervorgehobenen Namen.Ersetzen Sie
EXISTING_LUSTRE_IP_ADDRESS
durch die MGS-IP-Adresse.
Führen Sie den folgenden
kubectl
Befehl aus, um die Speicherklasse und den dauerhaften Volumeanspruch 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 Echo-Pod 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:
Fügen Sie dem Echo-Pod den folgenden Code hinzu:
while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
Führen Sie den folgenden
kubectl
Befehl aus, um Zeitstempel während der Schreibvorgänge in der Konsole anzuzeigen:`kubectl logs -f lustre-echo-date`