Ringkasan ini memperkenalkan driver CSI Cloud Storage FUSE untuk memasang bucket Cloud Storage sebagai sistem file lokal di Google Kubernetes Engine (GKE). Fitur ini sangat berguna untuk workload machine learning yang perlu menyimpan data pelatihan, model, dan checkpoint di Cloud Storage.
Ringkasan ini ditujukan untuk Developer dan Data scientist yang ingin mengakses atau menyimpan data pelatihan, bobot model inferensi, dan checkpoint yang disimpan di Cloud Storage dari aplikasi Kubernetes mereka.
Sebelum membaca halaman ini, pastikan Anda sudah memahami Kubernetes, GKE, dan Cloud Storage.
Cara kerjanya
Driver menggunakan standar Container Storage Interface (CSI) agar aplikasi Anda yang berjalan di Pod dapat mengakses bucket Cloud Storage dengan lancar seolah-olah bucket tersebut adalah sistem file yang terpasang. Artinya, Anda dapat memperlakukan bucket Cloud Storage sebagai sumber data yang persisten dan skalabel untuk aplikasi Kubernetes tanpa konfigurasi yang rumit atau perubahan kode.
Driver Cloud Storage FUSE CSI memberikan pengalaman yang terkelola sepenuhnya dan didukung oleh plugin CSI FUSE Google Cloud Storage open source. Driver CSI memungkinkan Anda menggunakan Kubernetes API untuk menggunakan bucket Cloud Storage yang sudah ada sebagai volume. Aplikasi Anda dapat mengupload dan mendownload objek menggunakan semantik sistem file Cloud Storage FUSE.
Filesystem di Userspace (FUSE) adalah antarmuka yang digunakan untuk mengekspor sistem file ke kernel Linux. Dengan Cloud Storage FUSE, Anda dapat memasang bucket Cloud Storage sebagai sistem file sehingga aplikasi dapat mengakses objek dalam bucket menggunakan operasi I/O File umum (misalnya membuka, membaca, menulis, dan menutup), bukan menggunakan API khusus cloud.
Driver ini secara native mendukung cara berikut agar Anda dapat mengonfigurasi volume yang didukung Cloud Storage:
- Volume efemeral CSI: Anda menentukan bucket Cloud Storage sesuai dengan spesifikasi Pod. Gunakan volume CSI efemeral jika Anda menginginkan antarmuka berbasis Pod yang efisien dan tidak memerlukan pengalaman dengan volume persisten Kubernetes. Untuk menggunakan opsi ini, lihat Memasang bucket Cloud Storage sebagai volume efemeral CSI.
- PersistentVolumes: Anda membuat resource PersistentVolume yang merujuk ke bucket Cloud Storage, menggunakan penyediaan statis. Pod Anda selanjutnya dapat mereferensikan PersistentVolumeClaim yang terikat dengan PersistentVolume ini. Gunakan opsi ini jika Anda sudah terbiasa dengan PersistentVolumes dan ingin konsistensi dengan deployment yang ada dan mengandalkan jenis resource ini. Untuk menggunakan opsi ini, lihat Memasang bucket Cloud Storage sebagai volume persisten.
Kasus penggunaan
Driver Cloud Storage FUSE CSI cocok untuk skenario seperti berikut:
AI dan machine learning
- Pelatihan: Anda dapat menggunakan driver Cloud Storage FUSE CSI untuk membaca data pelatihan dan memeriksa model tersimpan menggunakan Cloud Storage sebagai sumber tepercaya. Misalnya, saat melatih model di GKE menggunakan PyTorch, JAX, atau TensorFlow, pengemudi dapat memberikan akses ke set data pelatihan yang disimpan di bucket Cloud Storage.
- Inferensi: Anda dapat menyajikan model inferensi ML yang menyimpulkan hasil dari file yang disimpan di Cloud Storage. Anda dapat menggunakan Cloud Storage FUSE CSI untuk melakukan pramuat bobot model yang disimpan di Cloud Storage. Selain itu, Anda dapat menggunakan fitur download paralel untuk mempercepat pembacaan file besar dari Cloud Storage untuk download multi-thread. Anda dapat menggunakan fitur ini untuk meningkatkan waktu pemuatan model, terutama untuk pembacaan berukuran lebih dari 1 GB
Pipeline analisis data
Anda dapat menggunakan driver Cloud Storage FUSE CSI untuk menyederhanakan tugas pemrosesan data dengan memungkinkan aplikasi langsung mengakses dan menganalisis set data besar yang tersimpan di Cloud Storage. Misalnya, tugas Spark yang berjalan di GKE dapat menggunakan driver CSI untuk memproses data yang disimpan di Cloud Storage tanpa perlu mendownloadnya terlebih dahulu.
Manfaat
Menggunakan driver CSI memberi Anda manfaat berikut:
- Mudah disiapkan: Driver Cloud Storage FUSE CSI secara otomatis men-deploy dan mengelola driver di cluster Standar dan Autopilot. Menggunakan volume efemeral CSI menyederhanakan konfigurasi dan pengelolaan volume. Hal ini terjadi karena objek PersistentVolumeKlaim dan PersistentVolume tidak diperlukan.
- Keamanan: Driver Cloud Storage FUSE CSI tidak memerlukan akses hak istimewa. Hal ini meminimalkan risiko yang terkait dengan akses istimewa dan menghasilkan postur keamanan yang lebih baik. Anda dapat menggunakan Workload Identity Federation for GKE untuk mengelola autentikasi, sehingga memberi Anda kontrol terperinci atas cara Pod mengakses objek Cloud Storage.
- Performa: Driver Cloud Storage FUSE CSI meningkatkan performa melalui fitur seperti file bantuan untuk interaksi yang dioptimalkan, download paralel untuk akses data yang lebih cepat, serta cache metadata dan file untuk meningkatkan performa baca dan mengurangi latensi. Untuk mempelajari fitur-fitur ini lebih lanjut, lihat Opsi dan fitur penyesuaian performa.
- Portabilitas dan fleksibilitas: Driver Cloud Storage FUSE CSI memungkinkan Anda menggunakan semantik sistem file standar untuk memasang dan mengakses bucket Cloud Storage.
Hal ini menyediakan antarmuka yang sudah dikenal luas, yang meningkatkan portabilitas untuk workload ML,
sehingga Anda tidak perlu melakukan banyak perubahan kode atau aplikasi.
Driver didukung di semua akselerator yang tersedia di GKE,
termasuk GPU dan TPU. Driver Cloud Storage FUSE CSI mendukung
mode akses
ReadWriteMany
,ReadOnlyMany
, danReadWriteOnce
. Anda dapat menggunakan volume Cloud Storage FUSE di container ini. - Pengelolaan: Driver memungkinkan Anda menjalankan Cloud Storage FUSE tanpa perlu menginstal atau mengelolanya. Anda juga dapat melihat insight metrik untuk Cloud Storage FUSE, termasuk sistem file, Cloud Storage, dan penggunaan cache file.
Opsi dan fitur penyesuaian performa
Driver Cloud Storage FUSE CSI dilengkapi dengan beberapa fitur dan opsi penyesuaian performa untuk mengoptimalkan cara Pod Anda mengakses data yang disimpan di bucket Cloud Storage.
Misalnya, dengan mengaktifkan penyimpanan file dalam cache dan menyesuaikan permintaan serentak, Anda dapat mengurangi secara signifikan waktu yang diperlukan untuk memuat data pelatihan, sehingga mempercepat waktu pelatihan.
Sidecar native: Driver Cloud Storage FUSE CSI menyertakan container file bantuan di Pod Anda untuk mengelola interaksi dengan Cloud Storage. File bantuan menangani pemasangan dan interaksi dengan Cloud Storage, sehingga aplikasi Anda dapat mengakses data dengan lancar. Anda dapat meningkatkan performa dengan mengonfigurasi resource seperti CPU dan memori untuk penampung file bantuan, atau dengan menyesuaikan setelan yang terkait dengan cache dan buffering. Container file bantuan driver Cloud Storage FUSE CSI dan Istio dapat beroperasi berdampingan dan berjalan bersamaan di Pod Anda.
Unduhan paralel: Dimulai dari GKE versi 1.30.3-gke.1571000 danPenyimpanan Awan FUSE v.2.4.0 dengan cache file diaktifkan, Anda dapat menggunakanunduhan paralel fitur untuk mempercepat pembacaan file besar dari Cloud Storage untuk unduhan multi-utas. Anda dapat menggunakan fitur ini untuk mempercepat waktu muat model, terutama untuk pembacaan yang berukuran lebih dari 1 GB (misalnya, hingga dua kali lebih cepat saat memuat Llama 2 70B).
Dukungan caching metadata: Driver Cloud Storage FUSE CSI meningkatkan performa dengan meng-cache metadata file, seperti ukuran dan waktu modifikasi. Driver CSI mengaktifkan cache statistik ini secara default dan mengurangi latensi dengan menyimpan informasi secara lokal, bukan berulang kali memintanya dari Cloud Storage. Anda dapat mengonfigurasi ukuran maksimum dan durasi penyimpanan data dalam cache. Dengan menyesuaikan cache metadata, Anda dapat mengurangi panggilan API ke Google Cloud Storage, sehingga meningkatkan performa dan efisiensi aplikasi dengan meminimalkan traffic dan latensi jaringan.
Dukungan penyimpanan file dalam cache: Anda dapat menggunakan driver Cloud Storage FUSE CSI dengan cache file untuk meningkatkan performa pembacaan aplikasi yang menangani file kecil dari bucket Cloud Storage. Fitur cache file Cloud Storage FUSE adalah cache baca berbasis klien yang memungkinkan pembacaan file berulang untuk disalurkan dengan lebih cepat dari penyimpanan cache pilihan Anda. Anda dapat memilih dari berbagai opsi penyimpanan untuk cache baca, termasuk SSD Lokal, penyimpanan berbasis Persistent Disk, dan disk RAM, berdasarkan kebutuhan harga-performa Anda.
Untuk praktik terbaik penyesuaian performa, lihat Mengoptimalkan driver CSI FUSE Cloud Storage untuk performa GKE.
Batasan
Driver CSI memiliki keterbatasan berikut:
- Sistem file Cloud Storage FUSE memiliki perbedaan dalam performa, ketersediaan, otorisasi akses, dan semantik dibandingkan dengan sistem file POSIX.
- Driver CSI Cloud Storage FUSE tidak didukung di GKE Sandbox.
- Driver CSI Cloud Storage FUSE tidak mendukung snapshot volume, cloning volume, atau ekspansi volume.
- Akses level bucket yang seragam diperlukan untuk workload baca-tulis saat menggunakan Workload Identity Federation untuk GKE.
- Lihat masalah umum di project GitHub driver FUSE CSI Cloud Storage.
- Lihat masalah yang belum terselesaikan di project GitHub driver CSI Cloud Storage FUSE.
- Driver Cloud Storage FUSE CSI tidak mendukung Pod yang berjalan di
jaringan host (
hostNetwork: true
) karena pembatasan Workload Identity Federation untuk GKE.
Persyaratan
Untuk menggunakan driver Cloud Storage FUSE CSI, cluster Anda harus memenuhi persyaratan versi GKE berikut:
- Gunakan cluster Linux yang menjalankan GKE versi 1.24 atau yang lebih baru.
- Mengaktifkan Workload Identity Federation for GKE dan server metadata GKE.
- Gunakan Google Cloud CLI versi terbaru.
Untuk menggunakan fitur khusus untuk driver Cloud Storage FUSE CSI, Anda juga harus memenuhi persyaratan berikut:
Fitur | Persyaratan versi GKE |
---|---|
Image pribadi untuk container file bantuan, volume buffer tulis kustom, dan permintaan resource container file bantuan | 1.27.10-gke.1055000, 1.28.6-gke.1369000, 1.29.1-gke.1575000, atau yang lebih baru. |
Cache file, atribut volume | 1.27.12-gke.1190000, 1.28.8-gke.1175000, 1.29.3-gke.1093000, atau yang lebih baru. |
Volume FUSE Cloud Storage dalam container init | 1.29.3-gke.1093000 atau yang lebih baru, dengan semua node di GKE versi 1.29 atau yang lebih baru. |
Download paralel | 1.29.6-gke.1254000, 1.30.2-gke.1394000, atau yang lebih baru. |
Metrik FUSE Cloud Storage | 1.31.1-gke.1621000 atau yang lebih baru. |
Pengambilan data metadata | 1.32.1-gke.1357001 atau yang lebih baru. |
Mengonfigurasi kernel baca terlebih dahulu | 1.32.2-gke.1297001 atau yang lebih baru. |