Dokumen ini menjelaskan cara mengintegrasikan Managed Lustre dengan GKE untuk membuat lingkungan yang dioptimalkan untuk workload yang berat dan padat 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 Managed Lustre, dan melampirkannya ke cluster. Untuk menguji konfigurasi ini, Anda akan menjalankan workload pada node yang disediakan flex-start.
Dokumen ini ditujukan untuk Engineer machine learning (ML) dan 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 Google Cloud konten, 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 untuk penyesuaian atau perluasan yang tepat pada lingkungan GKE produksi yang ada.
- Gunakan XPK untuk membuat cluster GKE dengan cepat dan menjalankan workload untuk pengujian dan pembuktian konsep. 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
Flex-start memungkinkan Anda mengoptimalkan penyediaan TPU dengan hanya membayar resource yang Anda butuhkan. Flex-start direkomendasikan jika workload Anda memerlukan resource yang disediakan 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 penggunaan akselerator untuk workload AI/ML di GKE.
Managed Lustre
Managed Lustre adalah layanan sistem file paralel berperforma tinggi yang dirancang untuk workload yang berat. Driver CSI Managed Lustre memungkinkan Anda mengintegrasikan instance Managed Lustre dengan GKE, menggunakan Persistent Volume Claims (PVC) dan Persistent Volumes (PV) Kubernetes standar. Driver ini sangat bermanfaat untuk workload AI, ML, dan HPC yang memerlukan penyimpanan persisten, skalabel, dan 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. Mengaktifkan 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. Versi gcloud CLI yang lebih lama mungkin tidak mendukung perintah yang dijalankan 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: ID projectAnda Google Cloud .
- LOCATION: zona cluster GKE
Anda. Pilih zona untuk instance flex-start dan Managed Lustre. Misalnya,
us-west4-a. Untuk mengetahui nilai throughput yang valid, lihat Tentang penyediaan GPU dan TPU dengan mode penyediaan flex-start. - 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 mengetahui 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 saat 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 membuat cluster GKE menggunakan XPK. Cluster dikonfigurasi untuk menggunakan flex-start untuk penyediaan node dan memiliki driver CSI Managed Lustre yang diaktifkan.
Melampirkan instance penyimpanan ke cluster
Untuk mengonfigurasi PersistentVolume (PV) dan PersistentVolumeClaim (PVC), bagian ini menggunakan perintah lampirkan 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:
Unduh 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 melampirkan penyimpanan untuk cluster:
xpk storage list \ --cluster=${CLUSTER_NAME} --project=${PROJECT_ID} --zone=${LOCATION}
Menjalankan workload
Jalankan workload dengan instance Managed Lustre yang dilampirkan . 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 tentang 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.