Verwenden des Azure Managed Lustre CSI-Treibers mit Azure Kubernetes Service
In diesem Artikel erfahren Sie, 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 Azure Managed Lustre Container Support Interface (CSI)-Treiber für AKS ermöglicht ihnen den Zugriff auf azure Managed Lustre Storage als persistentes 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 umfasst alle Versionen, 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 mit installierten Azure CLI-Tools. Erste Schritte mit Azure CLI
- kubectl, das Kubernetes-Verwaltungstool, wird in Ihrer Terminalumgebung installiert. Siehe Schnellstart: Bereitstellen eines Azure Kubernetes Service (AKS)-Clusters mit Azure CLI
- Erstellen Sie eine Azure Managed Lustre-Bereitstellung. Siehe Dokumentation zum Azure Managed Lustre File System
Planen der AKS-Bereitstellung
Es gibt mehrere Optionen beim Bereitstellen von Azure Kubernetes Service, die sich auf den Betrieb zwischen AKS und Azure Managed Lustre auswirken.
Ermitteln des netzwerktyps, der mit AKS verwendet werden soll
Es gibt zwei Netzwerktypen, die mit dem Ubuntu Linux OS SKU, Kubenet und dem CNI-Treiber (Azure Container Network Interface) kompatibel sind. 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 Konnektivität von AKS und Azure Managed Lustre
Azure Managed Lustre arbeitet innerhalb eines privaten virtuellen Netzwerks, Ihre Kubernetes müssen über Eine 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 ihr eigenes virtuelles Netzwerk, und erstellen Sie ein virtuelles Netzwerk-Peering mit dem azure Managed Lustre Virtual Network.
- Verwenden Sie die Option "Eigene Netzwerke in AKS verwenden", um AKS in einem neuen Subnetz im virtuellen Azure Managed Lustre-Netzwerk zu installieren.
Hinweis
Das Installieren von AKS auf demselben Subnetz wie Azure Managed Lustre wird nicht empfohlen.
Peering AKS und Azure Managed Lustre virtual networks
Die Möglichkeit, zwei verschiedene virtuelle Netzwerke zu peeren, hat den Vorteil, die Verwaltung der verschiedenen Netzwerke in verschiedene privilegierte Rollen zu trennen. Peering kann auch zusätzliche Flexibilität bieten, da es in Azure-Abonnements oder -Regionen erfolgen kann. 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 ein Subnetz im virtuellen Azure Managed Lustre-Netzwerk
Die Option zum Installieren des AKS-Clusters in das virtuelle Azure Managed Lustre-Netzwerk mit dem Feature "Eigenes Netzwerk bringen" in AKS kann vorteilhaft sein, wenn Sie Szenarien wünschen, in denen das Netzwerk einzeln verwaltet wird. Eine zusätzliche Subnetzgröße, um Ihre AKS-Netzwerkanforderungen zu erfüllen, muss im virtuellen Azure Managed Lustre-Netzwerk erstellt werden.
Es gibt keine Berechtigungstrennung 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 die Einrichtung
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 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-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. Siehe Bereitstellen eines Azure Kubernetes Service (AKS)-Clusters.
Erstellen eines Peerings virtueller Netzwerke
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 und das Blatt "Eigenschaften" auswählen und die Ressourcengruppe "Infrastruktur" finden. 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 an virtual Network Peering , um das virtuelle AKS-Netzwerk mit Ihrem virtuellen Azure-Netzwerk zu verwalten.
Tipp
Aufgrund der Benennung der MC_ Ressourcengruppen und virtuellen Netzwerke können Namen von Netzwerken in mehreren AKS-Bereitstellungen ähnlich oder identisch sein. Beim Einrichten von Peering achten Sie genau darauf, dass Sie die AKS-Netzwerke auswählen, die Sie auswählen möchten.
Herstellen einer Verbindung mit dem AKS-Cluster
Stellen Sie eine Verbindung mit dem Azure Kubernetes-Dienstcluster her, indem Sie die folgenden Schritte ausführen:
Ö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 " und 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 sie in Ihrer Umgebung nicht vorhanden ist.
az aks install-cli
Stellen Sie sicher, dass der aktuelle Kontext der AKS-Cluster ist, den Sie soeben 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 zum Installieren des CSI-Treibers den folgenden Befehl aus:
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 auf 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 geklont haben, wenn Sie den CSI-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 dann den Inhalt 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 Clientverbindungsseite für Ihr Azure 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 diese durch
EXISTING_LUSTRE_IP_ADDRESS
die MSG-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 zum Anzeigen von Zeitstempeln in der Konsole während der Schreibvorgänge die folgenden Befehle aus:
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 zum Anzeigen von Zeitstempeln in der Konsole während der Schreibvorgänge den folgenden
kubectl
Befehl aus:`kubectl logs -f lustre-echo-date`
Nächste Schritte
- Erfahren Sie, wie Sie Dateien aus Ihrem Dateisystem mit einem Archivauftrag exportieren.