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
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine Terminalumgebung, in der die Azure CLI-Tools installiert sind. Weitere Informationen finden Sie unter Erste Schritte mit der Azure CLI.
- kubectl, das Kubernetes-Verwaltungstool, wird in Ihrer Terminalumgebung installiert. Siehe Schnellstart: Bereitstellen eines AKS-Clusters (Azure Kubernetes Service) mithilfe der Azure CLI
- Erstellen Sie eine Azure Managed Lustre-Bereitstellung. Weitere Informationen finden Sie in der Dokumentation zu Azure Managed Lustre File System.
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.
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.
Übersicht über das Setup
Führen Sie die folgenden Schritte aus, um den Azure Managed Lustre CSI-Treiber für Kubernetes zu aktivieren:
Installieren Sie den Azure Managed Lustre CSI-Treiber für Kubernetes.
Ü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:
Ö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 das Blatt Übersicht aus, wählen Sie dann die Schaltfläche Verbinden aus, und kopieren Sie den Befehl für Clusteranmeldeinformationen herunterladen.
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>
Installieren Sie kubectl, wenn es in Ihrer Umgebung nicht vorhanden ist.
az aks install-cli
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:
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.
Aktualisieren Sie in der Datei storageclass_existing_lustre.yaml den internen Namen des Lustre-Clusters und die MSG-IP-Adresse.
Beide Einstellungen werden im Azure-Portal auf der Seite Clientverbindung für Ihr Azure Lustre-Dateisystem angezeigt.
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 normalerweiselustrefs
. 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.Ersetzen Sie durch
EXISTING_LUSTRE_IP_ADDRESS
die MSG-IP-Adresse.
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:
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
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
- Erfahren Sie, wie Sie Dateien mit einem Archivauftrag aus Ihrem Dateisystem exportieren.