Panduan ini menjelaskan cara terhubung ke instance Managed Lustre yang ada menggunakan driver CSI Managed Lustre. Dengan begitu, Anda dapat mengakses instance Managed Lustre yang ada sebagai volume untuk workload stateful, dengan cara yang terkontrol dan dapat diprediksi.
Dukungan multi-NIC untuk jaringan berperforma tinggi
Untuk cluster GKE yang menjalankan versi 1.35.2-gke.1842000 atau yang lebih baru, driver CSI Managed Lustre diaktifkan secara default untuk menggunakan semua Kartu Antarmuka Jaringan (NIC) yang tersedia guna meningkatkan throughput. Dukungan ini menggabungkan bandwidth dengan menyebarkan traffic penyimpanan TCP ke seluruh antarmuka jaringan Anda.
Untuk menggunakan dukungan multi-NIC, node Anda harus memenuhi persyaratan berikut:
- NIC standar untuk TCP: node Anda harus menggunakan NIC standar, seperti Google Virtual NIC (gVNIC) atau VirtIO-Net, untuk menangani traffic penyimpanan TCP.
- VPC yang sama: semua NIC standar harus berada di jaringan VPC yang sama.
- Pertimbangan RDMA: node Anda juga dapat memiliki NIC RDMA yang terpasang; namun, driver CSI Managed Lustre hanya menggunakan NIC standar untuk traffic penyimpanan TCP.
Jika Anda ingin menonaktifkan dukungan multi-NIC, lihat Menonaktifkan multi-NIC untuk Lustre.
Port komunikasi Lustre
Driver CSI GKE Managed Lustre menggunakan port yang berbeda untuk komunikasi dengan instance Managed Lustre, bergantung pada versi cluster GKE dan konfigurasi Managed Lustre yang ada.
Port default (Direkomendasikan): untuk cluster GKE baru yang menjalankan versi
1.33.2-gke.4780000atau yang lebih baru, driver menggunakan port988untuk komunikasi Lustre secara default.Port Lama (Tidak Digunakan Lagi): gunakan port
6988dengan menambahkan flag--enable-legacy-lustre-portke perintahgcloudAnda dalam skenario berikut:- Versi GKE sebelumnya: jika cluster GKE Anda menjalankan versi sebelum
1.33.2-gke.4780000, flag--enable-legacy-lustre-portakan mengatasi konflik port dengangke-metadata-serverdi node GKE. - Instance Lustre yang ada: jika Anda terhubung ke instance Managed Lustre yang ada yang dibuat dengan flag
gke-support-enabled, Anda harus tetap menyertakan--enable-legacy-lustre-portdalam perintahgcloud, terlepas dari versi cluster Anda. Tanpa flag ini, cluster GKE Anda akan gagal memasang instance Lustre yang ada.
- Versi GKE sebelumnya: jika cluster GKE Anda menjalankan versi sebelum
Anda dapat mengonfigurasi cluster baru dan yang sudah ada untuk menggunakan port default 988, atau port lama 6988.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Cloud Managed Lustre API dan Google Kubernetes Engine API. Mengaktifkan API
- Untuk 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 perintah
gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.
- Untuk mengetahui batasan dan persyaratan, lihat Tentang driver CSI Google Cloud Managed Lustre.
- 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: project ID Google Cloud 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.
Mengaktifkan driver CSI Managed Lustre di cluster GKE baru
Bagian berikut menjelaskan cara mengaktifkan driver CSI Managed Lustre di cluster GKE baru.
Menggunakan port default 988
Untuk mengaktifkan driver CSI Managed Lustre saat membuat cluster GKE baru yang menjalankan versi 1.33.2-gke.4780000 atau yang lebih baru, jalankan perintah berikut:
Autopilot
gcloud container clusters create-auto "${CLUSTER_NAME}" \
--location=${LOCATION} \
--network="${NETWORK_NAME}" \
--cluster-version=${CLUSTER_VERSION} \
--enable-lustre-csi-driver
Standar
gcloud container clusters create "${CLUSTER_NAME}" \
--location=${LOCATION} \
--network="${NETWORK_NAME}" \
--cluster-version=${CLUSTER_VERSION} \
--addons=LustreCsiDriver
Menggunakan port lama 6988
Untuk mengaktifkan driver CSI Managed Lustre saat membuat cluster GKE baru yang menjalankan versi sebelum 1.33.2-gke.4780000, jalankan perintah berikut:
Autopilot
gcloud container clusters create-auto "${CLUSTER_NAME}" \
--location=${LOCATION} \
--network="${NETWORK_NAME}" \
--cluster-version=${CLUSTER_VERSION} \
--enable-lustre-csi-driver \
--enable-legacy-lustre-port
Standar
gcloud container clusters create "${CLUSTER_NAME}" \
--location=${LOCATION} \
--network="${NETWORK_NAME}" \
--cluster-version=${CLUSTER_VERSION} \
--addons=LustreCsiDriver \
--enable-legacy-lustre-port
Mengaktifkan driver CSI Managed Lustre di cluster GKE yang ada
Bagian berikut menjelaskan cara mengaktifkan driver CSI Managed Lustre di cluster GKE yang ada.
Menggunakan port default 988
Untuk mengaktifkan driver CSI Managed Lustre di cluster GKE yang ada yang menjalankan versi 1.33.2-gke.4780000 atau yang lebih baru, jalankan perintah berikut:
gcloud container clusters update ${CLUSTER_NAME} \
--location=${LOCATION} \
--update-addons=LustreCsiDriver=ENABLED
Menggunakan port lama 6988
Untuk mengaktifkan driver CSI Managed Lustre di cluster GKE yang ada, Anda mungkin perlu menggunakan port lama 6988 dengan menambahkan flag --enable-legacy-lustre-port. Flag ini diperlukan dalam skenario berikut:
- Jika cluster GKE Anda berjalan pada versi sebelum
1.33.2-gke.4780000. Jika Anda ingin menghubungkan cluster ini ke instance Managed Lustre yang sudah ada dan dibuat dengan flag
gke-support-enabled.gcloud container clusters update ${CLUSTER_NAME} \ --location=${LOCATION} \ --enable-legacy-lustre-port
Upgrade node diperlukan pada cluster yang ada
Mengaktifkan driver CSI Managed Lustre pada cluster yang ada dapat memicu pembuatan ulang node untuk mengupdate modul kernel yang diperlukan untuk klien Managed Lustre. Untuk ketersediaan langsung, sebaiknya upgrade node pool Anda secara manual.
Cluster GKE di saluran rilis diupgrade sesuai dengan peluncuran yang dijadwalkan, yang dapat memerlukan waktu beberapa minggu, bergantung pada masa pemeliharaan Anda. Jika menggunakan versi GKE statis, Anda harus mengupgrade secara manual node pool Anda.
Hingga upgrade node selesai sepenuhnya, Pod driver CSI mungkin mengalami crashloop pada node yang menunggu update. Jika Anda melihat error Operation not permitted di log Pod driver CSI, ini menunjukkan bahwa upgrade atau pembuatan ulang node diperlukan.
Setelah upgrade node pool, node CPU mungkin tampak menggunakan image GPU di konsol Google Cloud atau output CLI. Namun, perilaku ini normal. Image GPU digunakan kembali pada node CPU untuk menginstal modul kernel Managed Lustre dengan aman. Anda tidak akan dikenai biaya untuk penggunaan GPU.
(Opsional) Membuat node pool multi-NIC
Untuk menggunakan jaringan berperforma tinggi, Anda harus membuat node pool dengan jenis instance yang mendukung beberapa antarmuka jaringan. Dukungan multi-NIC diaktifkan secara default di cluster GKE yang menjalankan versi 1.35.2-gke.1842000 atau yang lebih baru. Pastikan antarmuka jaringan sekunder Anda berada dalam jaringan VPC yang sama dengan antarmuka utama Anda.
Jalankan perintah berikut:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=LOCATION \
--machine-type=MACHINE_TYPE \
--enable-gvnic \
--additional-node-network network=NETWORK_NAME,subnetwork=SECONDARY_SUBNET
Ganti kode berikut:
NODE_POOL_NAME: nama node pool Anda.CLUSTER_NAME: nama cluster Anda.LOCATION: region atau zona cluster Anda.MACHINE_TYPE: jenis mesin untuk node pool, sepertia3-megagpu-8gyang sering digunakan dengan multi-NIC untuk performa tinggi. Multi-NIC didukung di semua jenis mesin.NETWORK_NAME: nama jaringan VPC.SECONDARY_SUBNET: nama subnet sekunder.
Menonaktifkan multi-NIC di Lustre
Meskipun dukungan multi-NIC direkomendasikan untuk workload berperforma tinggi, Anda mungkin ingin menonaktifkannya dalam skenario tertentu. Misalnya, Anda mungkin tidak ingin menyebarkan traffic Lustre ke semua antarmuka hardware yang tersedia, atau Anda mungkin perlu mengisolasi masalah konektivitas ke satu jalur jaringan untuk pemecahan masalah.
Catatan: Jika Anda menonaktifkan dukungan multi-NIC pada node yang sedang berjalan, Anda mungkin perlu membuat ulang atau mengupgrade node pool secara manual agar perubahan ini diterapkan.
Untuk cluster
Untuk menonaktifkan jaringan berperforma tinggi untuk seluruh cluster, gunakan flag --disable-multi-nic-lustre saat membuat atau mengupdate cluster. Contoh:
gcloud container clusters update CLUSTER_NAME \
--location=LOCATION \
--disable-multi-nic-lustre
Ganti kode berikut:
CLUSTER_NAME: nama cluster Anda.LOCATION: region atau zona cluster Anda.
Untuk node pool
Guna menonaktifkan jaringan berperforma tinggi untuk node pool tertentu, update node pool untuk menetapkan label lustre.csi.storage.gke.io/multi-nic ke false:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--zone=LOCATION \
--node-labels=lustre.csi.storage.gke.io/multi-nic=false
Ganti kode berikut:
NODE_POOL_NAME: nama node pool Anda.CLUSTER_NAME: nama cluster Anda.LOCATION: zona cluster Anda.
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, GKE akan otomatis membuat ulang node Anda dan meng-uninstal modul kernel Managed Lustre.
Mengakses instance Managed Lustre yang ada menggunakan driver CSI Managed Lustre
Jika Anda telah menyediakan instance Managed Lustre dalam jaringan yang sama dengan cluster GKE, Anda dapat mengikuti petunjuk berikut untuk menyediakan PersistentVolume yang merujuk ke instance Anda secara statis.
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.
- Gunakan 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 untuk mencatat kolom Managed Lustre instance name, filesystem, dan mountPoint.
capacityGib: '9000' 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: 9000Gi 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: FILESYSTEMGanti kode berikut:
storageClassName: nama StorageClass. Nilainya dapat berupa string kosong, tetapi harus memenuhi spesifikasi PersistentVolumeClaim Anda.volumeHandle: ID untuk volume ini.- PROJECT_ID: Google Cloud Project ID
- LOCATION: lokasi zona 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 mendapatkan ini dari kolommountPointdi output perintah sebelumnya.filesystem: nama sistem file instance Managed Lustre Anda.
Untuk mengetahui daftar lengkap kolom yang didukung di 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 mode akses ReadWriteMany, 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_SIZEGanti STORAGE_SIZE dengan ukuran penyimpanan; misalnya,
9000Gi. 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-pvcJalankan perintah berikut untuk menerapkan manifes ke cluster:
kubectl apply -f my-pod.yamlPod menunggu hingga GKE menyediakan PersistentVolumeClaim sebelum mulai berjalan. Operasi ini mungkin memerlukan waktu beberapa menit untuk diselesaikan.
Verifikasi bahwa Pod sedang berjalan:
kubectl get podsMungkin perlu waktu beberapa menit hingga 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 level root dari sistem file yang terpasang agar cocok dengan fsGroup yang diminta pengguna yang ditentukan dalam SecurityContext Pod.
Pemecahan masalah
Untuk panduan pemecahan masalah, lihat Halaman pemecahan masalah di dokumentasi Managed Lustre.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya, hapus resource penyimpanan yang Anda buat dalam panduan ini.
Hapus Pod dan PersistentVolumeClaim.
kubectl delete pod my-pod kubectl delete pvc lustre-pvcPeriksa status PersistentVolume. Setelah menghapus Pod dan PersistentVolumeClaim, PersistentVolume akan melaporkan status "Released":
kubectl get pvOutputnya mirip dengan hal berikut ini:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv 9000Gi RWX Retain Released default/preprov-pvc 2m28sMenggunakan 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 "Available", yang menunjukkan kesiapannya untuk terikat ke PersistentVolumeClaim baru. Periksa status PersistentVolume:
kubectl get pvOutputnya mirip dengan hal berikut ini:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv 9000Gi RWX Retain Available 19mHapus PersistentVolume jika tidak diperlukan lagi. Jika PersistentVolume tidak lagi diperlukan, hapus:
kubectl delete pv lustre-pvMenghapus PersistentVolume tidak akan menghapus instance Managed Lustre yang mendasarinya.