Dokumen ini menjelaskan cara mengintegrasikan Managed Lustre dengan GKE untuk membuat lingkungan yang dioptimalkan untuk workload yang menuntut dan intensif data seperti kecerdasan buatan (AI), machine learning (ML), dan komputasi berperforma tinggi (HPC).
Dalam dokumen ini, Anda akan menyediakan cluster GKE dengan XPK, membuat instance Lustre Terkelola, dan melampirkannya ke cluster. Untuk menguji konfigurasi ini, Anda menjalankan workload pada node yang menyediakan start fleksibel.
Dokumen ini ditujukan untuk engineer Machine Learning (ML) serta spesialis Data dan AI yang tertarik untuk mempelajari kemampuan orkestrasi container Kubernetes yang didukung oleh instance Managed Lustre. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang dirujuk dalam konten Google Cloud , lihat Peran dan tugas pengguna GKE umum.
Latar belakang
Bagian ini menjelaskan teknologi utama yang digunakan dalam dokumen ini:
XPK
XPK adalah alat yang menyederhanakan penyediaan dan pengelolaan cluster dan workload GKE, terutama untuk tugas AI/ML. XPK membantu menghasilkan infrastruktur yang telah dikonfigurasi dan dioptimalkan untuk pelatihan, sehingga menjadikannya opsi yang baik untuk lingkungan pengujian dan pembuktian konsep.
Anda dapat membuat cluster yang menggunakan TPU dengan menggunakan Google Cloud CLI atau Accelerated Processing Kit (XPK).
- Gunakan gcloud CLI untuk membuat instance cluster GKE secara manual guna melakukan penyesuaian atau perluasan yang tepat pada lingkungan GKE produksi yang ada.
- Gunakan XPK untuk membuat cluster GKE dengan cepat dan menjalankan workload untuk pembuktian konsep dan pengujian. Untuk mengetahui informasi selengkapnya, lihat README XPK.
Dokumen ini menggunakan XPK secara eksklusif untuk menyediakan dan mengelola resource.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi Accelerated Processing Kit (XPK).
Flex-start
Dengan Flex-start, Anda dapat mengoptimalkan penyediaan TPU dengan hanya membayar resource yang Anda butuhkan. Mulai fleksibel direkomendasikan jika workload Anda memerlukan penyediaan resource secara dinamis sesuai kebutuhan, hingga tujuh hari dan akses yang hemat biaya.
Dokumen ini menggunakan flex-start sebagai contoh opsi penggunaan, tetapi Anda juga dapat menggunakan opsi lain, misalnya reservasi atau Spot. Untuk mengetahui informasi selengkapnya, lihat Tentang opsi konsumsi akselerator untuk workload AI/ML di GKE.
Managed Lustre
Managed Lustre adalah layanan sistem file paralel berperforma tinggi yang dirancang untuk workload berat. Driver CSI Managed Lustre memungkinkan Anda mengintegrasikan instance Managed Lustre dengan GKE, menggunakan Klaim Volume Persisten (PVC) dan Volume Persisten (PV) Kubernetes standar. Driver ini sangat bermanfaat untuk workload AI, ML, dan HPC yang memerlukan penyimpanan persisten, skalabel, dan ber-throughput tinggi.
Untuk mengetahui informasi selengkapnya, lihat Tentang driver CSI Managed Lustre.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan 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 perintah
gcloud components update. gcloud CLI versi sebelumnya mungkin tidak mendukung menjalankan perintah dalam dokumen ini.
Menyiapkan lingkungan Anda
Bagian ini menunjukkan cara menyiapkan lingkungan cluster Anda.
Di jendela terminal baru, buat lingkungan virtual:
VENV_DIR=~/venvp4;python3 -m venv $VENV_DIR;source $VENV_DIR/bin/activateInstal XPK dengan mengikuti langkah-langkah dalam file penginstalan XPK. Gunakan
pip install, bukan meng-clone dari sumber.Tetapkan variabel lingkungan default:
gcloud config set project PROJECT_ID gcloud config set billing/quota_project PROJECT_ID export PROJECT_ID=$(gcloud config get project) export LOCATION=LOCATION export CLUSTER_NAME=CLUSTER_NAME export GKE_VERSION=VERSION export NETWORK_NAME=NETWORK_NAME export IP_RANGE_NAME=IP_RANGE_NAME export FIREWALL_RULE_NAME=FIREWALL_RULE_NAME export ACCELERATOR_TYPE=v6e-16 export NUM_SLICES=1Ganti nilai berikut:
- PROJECT_ID: Google Cloud Project ID Anda.
- LOCATION: zona cluster GKE
Anda. Pilih zona untuk instance Managed Lustre dan flex-start. Contoh,
us-west4-a. Untuk nilai throughput yang valid, lihat Tentang penyediaan GPU dan TPU dengan mode penyediaan mulai fleksibel. - CLUSTER_NAME: nama cluster GKE Anda.
- VERSION: versi GKE. Pastikan ini setidaknya versi minimum yang mendukung Managed Lustre. Misalnya, 1.33.2-gke.1111000.
- NETWORK_NAME: nama jaringan yang Anda buat.
- IP_RANGE_NAME: nama rentang alamat IP.
- FIREWALL_RULE_NAME: nama aturan firewall.
Perintah sebelumnya mengonfigurasi jenis akselerator
v6e-16. Konfigurasi ini mencakup variabel berikut:ACCELERATOR_TYPE=v6e-16: sesuai dengan TPU Trillium dengan topologi4x4. Versi TPU ini menginstruksikan GKE untuk menyediakan node pool slice multi-host.v6e-16dipetakan ke jenis mesinct6e-standard-4tdi GKE.NUM_SLICES=1: jumlah node pool slice TPU yang dibuat XPK untukACCELERATOR_TYPEyang Anda pilih.
Jika Anda ingin menyesuaikan variabel
ACCELERATOR_TYPEdanNUM_SLICES, lihat dokumen berikut untuk menemukan kombinasi yang tersedia:- Untuk mengidentifikasi versi TPU, jenis mesin untuk GKE, topologi, dan zona yang tersedia yang ingin Anda gunakan, lihat Merencanakan TPU di GKE.
- Untuk memetakan jenis mesin GKE dengan jenis akselerator di Cloud TPU API, lihat dokumentasi TPU Trillium (v6e).
Menyiapkan jaringan VPC
Siapkan jaringan Virtual Private Cloud untuk instance Managed Lustre dan cluster GKE Anda.
Aktifkan Service Networking API:
gcloud services enable servicenetworking.googleapis.com \ --project=${PROJECT_ID}Buat jaringan VPC:
gcloud compute networks create ${NETWORK_NAME} \ --subnet-mode=auto --project=${PROJECT_ID} \ --mtu=8896Buat rentang alamat IP untuk peering VPC:
gcloud compute addresses create ${IP_RANGE_NAME} \ --global \ --purpose=VPC_PEERING \ --prefix-length=20 \ --description="Managed Lustre VPC Peering" \ --network=${NETWORK_NAME} \ --project=${PROJECT_ID}Dapatkan rentang CIDR dari rentang alamat IP:
CIDR_RANGE=$( gcloud compute addresses describe ${IP_RANGE_NAME} \ --global \ --format="value[separator=/](address, prefixLength)" \ --project=${PROJECT_ID} )Buat aturan firewall untuk mengizinkan traffic TCP dari rentang alamat IP:
gcloud compute firewall-rules create ${FIREWALL_RULE_NAME} \ --allow=tcp:988,tcp:6988 \ --network=${NETWORK_NAME} \ --source-ranges=${CIDR_RANGE} \ --project=${PROJECT_ID}Hubungkan peering VPC.
gcloud services vpc-peerings connect \ --network=${NETWORK_NAME} \ --project=${PROJECT_ID} \ --ranges=${IP_RANGE_NAME} \ --service=servicenetworking.googleapis.com
Membuat instance penyimpanan Managed Lustre
Buat instance penyimpanan Managed Lustre.
Tetapkan variabel instance penyimpanan:
export STORAGE_NAME=STORAGE_NAME export STORAGE_THROUGHPUT=STORAGE_THROUGHPUT export STORAGE_CAPACITY=STORAGE_CAPACITY_GIB export STORAGE_FS=lfsGanti nilai berikut:
- STORAGE_NAME: nama instance Managed Lustre Anda.
- STORAGE_THROUGHPUT: throughput instance Managed Lustre, dalam MiB/dtk per TiB. Untuk nilai throughput yang valid, lihat Menghitung kapasitas baru Anda.
- STORAGE_CAPACITY_GIB: kapasitas instance Managed Lustre, dalam GiB. Untuk mengetahui nilai kapasitas yang valid, lihat Nilai kapasitas dan throughput yang diizinkan.
Buat instance Managed Lustre:
gcloud lustre instances create ${STORAGE_NAME} \ --per-unit-storage-throughput=${STORAGE_THROUGHPUT} \ --capacity-gib=${STORAGE_CAPACITY} \ --filesystem=${STORAGE_FS} \ --location=${LOCATION} \ --network=projects/${PROJECT_ID}/global/networks/${NETWORK_NAME} \ --project=${PROJECT_ID} \ --async # Creates the instance asynchronouslyFlag
--asyncmembuat instance secara asinkron dan memberikan ID operasi untuk melacak statusnya.Periksa status operasi:
gcloud lustre operations describe OPERATION_ID \ --location=${LOCATION} \ --project=${PROJECT_ID}Ganti
OPERATION_IDdengan ID dari output perintah asinkron sebelumnya. Jika tidak memiliki ID, Anda dapat mencantumkan semua operasi:gcloud lustre operations list \ --location=${LOCATION} \ --project=${PROJECT_ID}Instance siap jika output perintah menampilkan
done: true.
Menggunakan XPK untuk membuat cluster GKE
Gunakan XPK untuk membuat cluster GKE dengan node pool.
Buat cluster GKE:
xpk cluster create --cluster ${CLUSTER_NAME} \
--num-slices=${NUM_SLICES} \
--tpu-type=${ACCELERATOR_TYPE} \
--zone=${LOCATION} \
--project=${PROJECT_ID} \
--gke-version=${GKE_VERSION} \
--custom-cluster-arguments="--network=${NETWORK_NAME}" \
--enable-lustre-csi-driver \
--flex
Perintah ini akan membuat cluster GKE menggunakan XPK. Cluster dikonfigurasi untuk menggunakan flex-start untuk penyediaan node dan telah mengaktifkan driver CSI Managed Lustre.
Melampirkan instance penyimpanan ke cluster
Untuk mengonfigurasi PersistentVolume (PV) dan PersistentVolumeClaim (PVC), bagian ini menggunakan perintah pemasangan penyimpanan XPK (xpk storage attach) dengan file manifes.
Bagian ini menggunakan contoh manifes
dari kode sumber XPK.
Lampirkan instance penyimpanan Managed Lustre ke cluster GKE Anda dengan menyelesaikan langkah-langkah berikut:
Download file manifes contoh ke direktori kerja Anda saat ini dan simpan sebagai
lustre-manifest-attach.yaml.Perbarui file manifes dengan informasi instance Managed Lustre Anda:
Di bagian
PersistentVolume, ganti nilai berikut:- STORAGE_SIZE: ukuran instance Managed Lustre, dalam GiB.
- PROJECT_ID/ZONE/INSTANCE_NAME: jalur resource lengkap instance Managed Lustre Anda.
- IP_ADDRESS: alamat IP instance Managed Lustre.
- FILE_SYSTEM: jenis sistem file, yaitu
lfs.
Di bagian
PersistentVolumeClaim, ganti nilai berikut:- STORAGE_SIZE: Ukuran PersistentVolumeClaim, dalam GiB.
Lampirkan instance penyimpanan ke cluster:
xpk storage attach ${STORAGE_NAME} \ --cluster=${CLUSTER_NAME} --project=${PROJECT_ID} --zone=${LOCATION} \ --type=lustre \ --mount-point='/lustre-data' \ --readonly=false \ --auto-mount=true \ --manifest='./lustre-manifest-attach.yaml'Pastikan Anda telah melampirkan penyimpanan untuk cluster:
xpk storage list \ --cluster=${CLUSTER_NAME} --project=${PROJECT_ID} --zone=${LOCATION}
Menjalankan workload
Jalankan beban kerja dengan instance Managed Lustre yang terpasang . Contoh perintah berikut mencantumkan disk yang tersedia dan membuat file "hello" di direktori instance Managed Lustre.
Buat dan jalankan workload:
xpk workload create --workload test-lustre \
--cluster=${CLUSTER_NAME} --project=${PROJECT_ID} --zone=${LOCATION} \
--command="df -h && echo 'hello' > /lustre-data/hello.txt && cat /lustre-data/hello.txt" \
--tpu-type=${ACCELERATOR_TYPE} \
--num-slices=1 \
--flex
Pembersihan
Setelah menyelesaikan langkah-langkah dalam dokumen ini, untuk mencegah timbulnya biaya yang tidak diinginkan pada akun Anda, hapus cluster:
xpk cluster delete --cluster ${CLUSTER_NAME} \
--zone ${LOCATION} \
--project ${PROJECT_ID}
Langkah berikutnya
- Pelajari lebih lanjut driver CSI Managed Lustre.
- Pelajari referensi driver CSI Managed Lustre Google Cloud.
- Pelajari cara membuat dan menggunakan volume yang didukung oleh Lustre.
- Pelajari cara mengakses instance Lustre yang ada.