Panduan ini menjelaskan cara terhubung ke instance Managed Lustre yang ada menggunakan driver CSI Managed Lustre. Cara ini memungkinkan Anda mengakses instance Managed Lustre yang ada sebagai volume untuk workload stateful Anda, dengan cara yang terkontrol dan dapat diprediksi.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Cloud Managed Lustre API dan Google Kubernetes Engine API. Aktifkan API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
- Untuk mengetahui batasan dan persyaratan, lihat [Ringkasan driver CSI].
- Pastikan untuk mengaktifkan driver CSI Managed Lustre. Fitur ini dinonaktifkan secara default di cluster Standard dan Autopilot.
Menyiapkan variabel lingkungan
Siapkan variabel lingkungan berikut:
export CLUSTER_NAME=CLUSTER_NAME
export PROJECT_ID=PROJECT_ID
export NETWORK_NAME=LUSTRE_NETWORK
export LOCATION=ZONE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.PROJECT_ID
: Trusted Cloud by S3NS project ID Anda.LUSTRE_NETWORK
: jaringan Virtual Private Cloud bersama tempat cluster GKE dan instance Managed Lustre berada.ZONE
: zona geografis cluster GKE Anda; misalnya,us-central1-a
.
Mengonfigurasi driver CSI Managed Lustre
Bagian ini membahas cara mengaktifkan dan menonaktifkan driver CSI Managed Lustre, jika diperlukan.
Mengaktifkan driver CSI Managed Lustre di cluster GKE baru
Untuk mengaktifkan driver CSI Managed Lustre saat membuat cluster GKE baru, ikuti langkah-langkah berikut:
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
Standar
gcloud container clusters create "${CLUSTER_NAME}" \
--location=${LOCATION} \
--network="${NETWORK_NAME}" \
--cluster-version=1.33.2-gke.1111000 \
--addons=LustreCsiDriver \
--enable-legacy-lustre-port
Mengaktifkan driver CSI Managed Lustre pada cluster GKE yang ada
Jika Anda ingin mengaktifkan driver CSI Lustre Terkelola di cluster GKE yang ada, gunakan perintah berikut:
gcloud container clusters update ${CLUSTER_NAME} \
--location=${LOCATION} \
--enable-legacy-lustre-port
Setelah driver CSI Lustre Terkelola diaktifkan di cluster Anda, Anda mungkin melihat bahwa node Anda dibuat ulang dan node CPU tampaknya menggunakan image GPU di outputTrusted Cloud konsol atau CLI. Contoh:
config:
imageType: COS_CONTAINERD
nodeImageConfig:
image: gke-1330-gke1552000-cos-121-18867-90-4-c-nvda
Perilaku ini sudah diperkirakan. Image GPU digunakan kembali di node CPU untuk menginstal modul kernel Managed Lustre secara aman. Anda tidak akan dikenai biaya berlebih untuk penggunaan GPU.
Menonaktifkan driver CSI Managed Lustre
Anda dapat menonaktifkan driver CSI Managed Lustre pada cluster GKE yang ada menggunakan Google Cloud CLI.
gcloud container clusters update ${CLUSTER_NAME} \
--location=${LOCATION} \
--update-addons=LustreCsiDriver=DISABLED
Setelah driver CSI dinonaktifkan, node Anda akan dibuat ulang secara otomatis, dan modul kernel Managed Lustre akan di-uninstal dari node GKE Anda.
Mengakses instance Managed Lustre yang ada menggunakan driver CSI Managed Lustre
Jika sudah menyediakan instance Managed Lustre dalam jaringan yang sama dengan cluster GKE, Anda dapat mengikuti petunjuk ini untuk menyediakan PersistentVolume secara statis yang merujuk ke instance Anda.
Bagian berikut menjelaskan proses umum untuk mengakses instance Managed Lustre yang ada menggunakan driver CSI Managed Lustre:
- Buat PersistentVolume yang merujuk ke instance Managed Lustre.
- Menggunakan PersistentVolumeClaim untuk mengakses volume.
- Buat workload yang menggunakan volume.
Membuat PersistentVolume
Untuk menemukan instance Managed Lustre Anda, jalankan perintah berikut.
gcloud lustre instances list \ --project=${PROJECT_ID} \ --location=${LOCATION}
Output-nya akan terlihat seperti berikut. Sebelum melanjutkan ke langkah berikutnya, pastikan Anda mencatat kolom Managed Lustre instance name, filesystem, dan 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'
Simpan manifes berikut dalam file bernama
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
Ganti kode berikut:
storageClassName
: nama StorageClass. Nilainya dapat berupa string kosong, tetapi harus memenuhi spesifikasi PersistentVolumeClaim Anda.volumeHandle
: ID untuk volume ini.- PROJECT_ID: Trusted Cloud by S3NS project ID.
- LOCATION: lokasi zonal instance Lustre Anda. Anda harus menentukan zona yang didukung untuk driver CSI Managed Lustre.
- INSTANCE_NAME: nama instance Lustre Anda.
ip
: alamat IP instance Lustre Anda. Anda mendapatkannya dari kolommountPoint
di output perintah sebelumnya.filesystem
: nama sistem file instance Managed Lustre Anda.
Untuk mengetahui daftar lengkap kolom yang didukung dalam objek PersistentVolume, lihat dokumentasi referensi driver CSI Managed Lustre.
Buat PersistentVolume dengan menjalankan perintah ini:
kubectl apply -f lustre-pv.yaml
Menggunakan PersistentVolumeClaim untuk mengakses volume
Anda dapat membuat resource PersistentVolumeClaim yang mereferensikan StorageClass driver CSI Managed Lustre.
File manifes berikut menunjukkan contoh cara membuat
PersistentVolumeClaim dalam ReadWriteMany
mode akses ,
yang mereferensikan StorageClass yang Anda buat sebelumnya.
Simpan manifes berikut dalam file bernama
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
Ganti STORAGE_SIZE dengan ukuran penyimpanan; misalnya,
18000Gi
. Nilai ini harus cocok dengan spesifikasi di PersistentVolume Anda.Buat PersistentVolumeClaim dengan menjalankan perintah ini:
kubectl create -f lustre-pvc.yaml
Membuat workload yang menggunakan volume
Bagian ini menunjukkan cara membuat Pod yang menggunakan resource PersistentVolumeClaim yang Anda buat sebelumnya.
Beberapa Pod dapat berbagi resource PersistentVolumeClaim yang sama.
Simpan manifes berikut dalam file bernama
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
Jalankan perintah berikut untuk menerapkan manifes ke cluster:
kubectl apply -f my-pod.yaml
Pod menunggu hingga GKE menyediakan PersistentVolumeClaim sebelum mulai berjalan. Penyelesaian operasi ini mungkin memerlukan waktu beberapa menit.
Verifikasi bahwa Pod sedang berjalan:
kubectl get pods
Mungkin perlu waktu beberapa menit agar Pod mencapai status
Running
.Outputnya mirip dengan hal berikut ini:
NAME READY STATUS RESTARTS AGE my-pod 1/1 Running 0 11s
Menggunakan fsGroup dengan volume Managed Lustre
Anda dapat mengubah kepemilikan grup direktori tingkat root sistem file yang di-mount agar sesuai dengan fsGroup yang diminta pengguna dan ditentukan dalam SecurityContext Pod.
Pemecahan masalah
Untuk panduan pemecahan masalah, lihat halaman Pemecahan masalah dalam dokumentasi Managed Lustre.
Pembersihan
Agar tidak menimbulkan biaya pada akun Trusted Cloud by S3NS Anda, hapus resource penyimpanan yang Anda buat dalam panduan ini.
Hapus Pod dan PersistentVolumeClaim.
kubectl delete pod my-pod kubectl delete pvc lustre-pvc
Periksa status PersistentVolume. Setelah menghapus Pod dan PersistentVolumeClaim, PersistentVolume akan melaporkan status "Released":
kubectl get pv
Outputnya mirip dengan hal berikut ini:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv 18000Gi RWX Retain Released default/preprov-pvc 2m28s
Gunakan kembali PersistentVolume. Untuk menggunakan kembali PersistentVolume, hapus referensi klaim (
claimRef
):kubectl patch pv lustre-pv --type json -p '[{"op": "remove", "path": "/spec/claimRef"}]'
PersistentVolume sekarang akan melaporkan status "Tersedia", yang menunjukkan kesiapannya untuk diikat ke PersistentVolumeClaim baru. Periksa status PersistentVolume:
kubectl get pv
Outputnya mirip dengan hal berikut ini:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv 18000Gi RWX Retain Available 19m
Hapus PersistentVolume jika tidak diperlukan lagi. Jika PersistentVolume tidak lagi diperlukan, hapus:
kubectl delete pv lustre-pv
Menghapus PersistentVolume tidak akan menghapus instance Managed Lustre yang mendasarinya.