In diesem Leitfaden wird beschrieben, wie Sie mit dem Managed Lustre-CSI-Treiber eine Verbindung zu einer vorhandenen Managed Lustre-Instanz herstellen können. So können Sie kontrolliert und vorhersagbar auf vorhandene Managed Lustre-Instanzen als Volumes für Ihre zustandsorientierten Arbeitslasten zugreifen.
Hinweise
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Aktivieren Sie die Google Cloud Managed Lustre API und die Google Kubernetes Engine API. APIs aktivieren
- Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit
gcloud components update
ab.
- Informationen zu Einschränkungen und Anforderungen finden Sie in der [CSI-Treiberübersicht].
- Aktivieren Sie den verwalteten Lustre-CSI-Treiber. Sie ist in Standard- und Autopilot-Clustern standardmäßig deaktiviert.
Umgebungsvariablen einrichten
Richten Sie die folgenden Umgebungsvariablen ein:
export CLUSTER_NAME=CLUSTER_NAME
export PROJECT_ID=PROJECT_ID
export NETWORK_NAME=LUSTRE_NETWORK
export LOCATION=ZONE
Ersetzen Sie Folgendes:
CLUSTER_NAME
ist der Name des Clusters.PROJECT_ID
: Ihre Trusted Cloud by S3NS Projekt-ID.LUSTRE_NETWORK
: Das freigegebene Virtual Private Cloud-Netzwerk, in dem sich sowohl der GKE-Cluster als auch die verwaltete Lustre-Instanz befinden.ZONE
: die geografische Zone Ihres GKE-Cluster, z. B.us-central1-a
.
Verwalteten Lustre-CSI-Treiber konfigurieren
In diesem Abschnitt wird beschrieben, wie Sie den verwalteten Lustre-CSI-Treiber bei Bedarf aktivieren und deaktivieren können.
Verwalteten Lustre-CSI-Treiber auf einem neuen GKE-Cluster aktivieren
So aktivieren Sie den Managed Lustre-CSI-Treiber beim Erstellen eines neuen GKE-Cluster:
Autopilot
gcloud container clusters create-auto "${CLUSTER_NAME}" \
--location=${LOCATION} \
--network="${NETWORK_NAME}" \
--cluster-version=1.33.2-gke.1111000 \
--enable-lustre-csi-driver \
--enable-legacy-lustre-port
Standard
gcloud container clusters create "${CLUSTER_NAME}" \
--location=${LOCATION} \
--network="${NETWORK_NAME}" \
--cluster-version=1.33.2-gke.1111000 \
--addons=LustreCsiDriver \
--enable-legacy-lustre-port
Verwalteten Lustre-CSI-Treiber auf einem vorhandenen GKE-Cluster aktivieren
Wenn Sie den verwalteten Lustre-CSI-Treiber in einem vorhandenen GKE-Cluster aktivieren möchten, verwenden Sie den folgenden Befehl:
gcloud container clusters update ${CLUSTER_NAME} \
--location=${LOCATION} \
--enable-legacy-lustre-port
Nachdem der Managed Lustre-CSI-Treiber in Ihrem Cluster aktiviert wurde, werden Ihre Knoten möglicherweise neu erstellt und CPU-Knoten scheinen in derTrusted Cloud -Konsole oder in der CLI-Ausgabe ein GPU-Image zu verwenden. Beispiel:
config:
imageType: COS_CONTAINERD
nodeImageConfig:
image: gke-1330-gke1552000-cos-121-18867-90-4-c-nvda
Dieses Verhalten ist so vorgesehen. Das GPU-Image wird auf CPU-Knoten wiederverwendet, um die Managed Lustre-Kernelmodule sicher zu installieren. Ihnen werden keine überhöhten Gebühren für die GPU-Nutzung in Rechnung gestellt.
Managed Lustre-CSI-Treiber deaktivieren
Sie können den Managed Lustre-CSI-Treiber in einem vorhandenen GKE-Cluster mit der Google Cloud CLI deaktivieren.
gcloud container clusters update ${CLUSTER_NAME} \
--location=${LOCATION} \
--update-addons=LustreCsiDriver=DISABLED
Sobald der CSI-Treiber deaktiviert ist, werden Ihre Knoten automatisch neu erstellt und die verwalteten Lustre-Kernelmodule werden von Ihren GKE-Knoten deinstalliert.
Mit dem Managed Lustre-CSI-Treiber auf eine vorhandene Managed Lustre-Instanz zugreifen
Wenn Sie bereits eine Managed Lustre-Instanz im selben Netzwerk wie Ihren GKE-Cluster bereitgestellt haben, können Sie dieser Anleitung folgen, um ein PersistentVolume statisch bereitzustellen, das auf Ihre Instanz verweist.
In den folgenden Abschnitten wird das typische Verfahren für den Zugriff auf eine vorhandene Managed Lustre-Instanz mit dem Managed Lustre-CSI-Treiber beschrieben:
- Ein PersistentVolume erstellen, das auf die Managed Lustre-Instanz verweist
- Greifen Sie mit einem PersistentVolumeClaim auf das Volume zu.
- Erstellen Sie eine Arbeitslast, die das Volume verbraucht.
PersistentVolume erstellen
Führen Sie den folgenden Befehl aus, um Ihre verwaltete Lustre-Instanz zu finden.
gcloud lustre instances list \ --project=${PROJECT_ID} \ --location=${LOCATION}
Die Ausgabe sollte ungefähr so aussehen: Bevor Sie mit dem nächsten Schritt fortfahren, notieren Sie sich die Felder Name der verwalteten Lustre-Instanz, Dateisystem und mountPoint.
capacityGib: '18000' createTime: '2025-04-28T22:42:11.140825450Z' filesystem: testlfs gkeSupportEnabled: true mountPoint: 10.90.1.4@tcp:/testlfs name: projects/my-project/locations/us-central1-a/instances/my-lustre network: projects/my-project/global/networks/default perUnitStorageThroughput: '1000' state: ACTIVE updateTime: '2025-04-28T22:51:41.559098631Z'
Speichern Sie folgendes Manifest in einer Datei mit dem Namen
lustre-pv.yaml
:apiVersion: v1 kind: PersistentVolume metadata: name: lustre-pv spec: storageClassName: "STORAGE_CLASS_NAME" capacity: storage: 18000Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain volumeMode: Filesystem claimRef: namespace: default name: lustre-pvc csi: driver: lustre.csi.storage.gke.io volumeHandle: "PROJECT_ID/LOCATION/INSTANCE_NAME" volumeAttributes: ip: IP_ADDRESS filesystem: FILESYSTEM
Ersetzen Sie Folgendes:
storageClassName
: ist der Name Ihrer StorageClass. Der Wert kann ein leerer String sein, muss aber der Spezifikation Ihres PersistentVolumeClaim entsprechen.volumeHandle
: die Kennung für dieses Volume.- PROJECT_ID: die Trusted Cloud by S3NS Projekt-ID.
- LOCATION: Der zonale Standort Ihrer Lustre-Instanz. Sie müssen eine unterstützte Zone für den Managed Lustre-CSI-Treiber angeben.
- INSTANCE_NAME: Der Name Ihrer Lustre-Instanz.
ip
: Die IP-Adresse Ihrer Lustre-Instanz. Sie erhalten diesen Wert aus dem FeldmountPoint
in der Ausgabe des vorherigen Befehls.filesystem
: der Dateisystemname Ihrer Managed Lustre-Instanz.
Eine vollständige Liste der Felder, die im PersistentVolume-Objekt unterstützt werden, finden Sie in der Referenzdokumentation zum verwalteten Lustre-CSI-Treiber.
Erstellen Sie das PersistentVolume mit dem folgenden Befehl:
kubectl apply -f lustre-pv.yaml
Mit dem PersistentVolumeClaim auf das Volume zugreifen
Sie können eine PersistentVolumeClaim-Ressource erstellen, die auf die StorageClass des CSI-Treibers für Managed Lustre verweist.
In der folgenden Manifestdatei wird ein Beispiel für das Erstellen eines PersistentVolumeClaims im ReadWriteMany
-Zugriffsmodus gezeigt, der auf die zuvor erstellte StorageClass verweist.
Speichern Sie folgendes Manifest in einer Datei mit dem Namen
lustre-pvc.yaml
:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: lustre-pvc spec: accessModes: - ReadWriteMany storageClassName: "STORAGE_CLASS_NAME" volumeName: lustre-pv resources: requests: storage: STORAGE_SIZE
Ersetzen Sie STORAGE_SIZE durch die Speichergröße, z. B.
18000Gi
. Er muss mit der Spezifikation in Ihrem PersistentVolume übereinstimmen.Erstellen Sie den PersistentVolumeClaim mit dem folgenden Befehl:
kubectl create -f lustre-pvc.yaml
Arbeitslast erstellen, die das Volume verbraucht
In diesem Abschnitt wird gezeigt, wie Sie einen Pod erstellen, der die zuvor erstellte PersistentVolumeClaim-Ressource verwendet.
Eine PersistentVolumeClaim-Ressource kann von mehreren Pods verwendet werden.
Speichern Sie folgendes Manifest in einer Datei mit dem Namen
my-pod.yaml
.apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: nginx image: nginx volumeMounts: - name: lustre-volume mountPath: /data volumes: - name: lustre-volume persistentVolumeClaim: claimName: lustre-pvc
Führen Sie den folgenden Befehl aus, um das Manifest auf den Cluster anzuwenden:
kubectl apply -f my-pod.yaml
Der Pod wartet, bis GKE den PersistentVolumeClaim bereitstellt, bevor er ausgeführt wird. Dieser Vorgang kann einige Minuten dauern.
Prüfen Sie, ob der Pod ausgeführt wird:
kubectl get pods
Es kann einige Minuten dauern, bis der Pod den Status
Running
erreicht.Die Ausgabe sieht etwa so aus:
NAME READY STATUS RESTARTS AGE my-pod 1/1 Running 0 11s
fsGroup mit Managed Lustre-Volumes verwenden
Sie können die Gruppenzugehörigkeit des Stammverzeichnisses des eingebundenen Dateisystems so ändern, dass sie einer vom Nutzer angeforderten fsGroup entspricht, die im SecurityContext des Pods angegeben ist.
Fehlerbehebung
Eine Anleitung zur Fehlerbehebung finden Sie in der Dokumentation zu Managed Lustre auf der Seite zur Fehlerbehebung.
Bereinigen
Damit Ihrem Trusted Cloud by S3NS -Konto keine Gebühren in Rechnung gestellt werden, löschen Sie die in dieser Anleitung erstellten Speicherressourcen.
Löschen Sie den Pod und den PersistentVolumeClaim.
kubectl delete pod my-pod kubectl delete pvc lustre-pvc
Prüfen Sie den PersistentVolume-Status. Nach dem Löschen des Pods und des PersistentVolumeClaim sollte für das PersistentVolume der Status „Released“ (Freigegeben) angezeigt werden:
kubectl get pv
Die Ausgabe sieht etwa so aus:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv 18000Gi RWX Retain Released default/preprov-pvc 2m28s
PersistentVolume wiederverwenden Wenn Sie das PersistentVolume wiederverwenden möchten, entfernen Sie den Anspruchsverweis (
claimRef
):kubectl patch pv lustre-pv --type json -p '[{"op": "remove", "path": "/spec/claimRef"}]'
Das PersistentVolume sollte jetzt den Status „Available“ (Verfügbar) haben, was darauf hinweist, dass es bereit ist, an einen neuen PersistentVolumeClaim gebunden zu werden. Prüfen Sie den Status des PersistentVolume:
kubectl get pv
Die Ausgabe sieht etwa so aus:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv 18000Gi RWX Retain Available 19m
Löschen Sie das PersistentVolume, wenn es nicht mehr benötigt wird. Wenn das PersistentVolume nicht mehr benötigt wird, löschen Sie es:
kubectl delete pv lustre-pv
Durch das Löschen des PersistentVolume wird die zugrunde liegende Managed Lustre-Instanz nicht entfernt.