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 ini menggunakan standar Container Storage Interface (CSI) untuk memungkinkan aplikasi Anda yang berjalan di Pod mengakses bucket Cloud Storage dengan lancar seolah-olah bucket tersebut adalah sistem file yang dipasang. Artinya, Anda dapat memperlakukan bucket Cloud Storage sebagai sumber data yang persisten dan skalabel untuk aplikasi Kubernetes tanpa konfigurasi atau perubahan kode yang rumit.
Driver CSI Cloud Storage FUSE memberikan pengalaman yang terkelola sepenuhnya dan didukung oleh plugin CSI Google Cloud Storage FUSE 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 in Userspace (FUSE) adalah antarmuka yang digunakan untuk mengekspor sistem file ke kernel Linux. Cloud Storage FUSE memungkinkan Anda memasang bucket Cloud Storage sebagai sistem file sehingga aplikasi dapat mengakses objek dalam bucket menggunakan operasi I/O File yang umum (misalnya, membuka, membaca, menulis, dan menutup), bukan menggunakan API khusus cloud.
Driver mendukung cara berikut secara native 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 disederhanakan dan tidak memerlukan pengalaman sebelumnya 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 memahami PersistentVolumes dan menginginkan konsistensi dengan deployment yang ada yang mengandalkan jenis resource ini. Untuk menggunakan opsi ini, lihat Memasang bucket Cloud Storage sebagai volume persisten.
Kasus penggunaan
Driver CSI Cloud Storage FUSE cocok untuk skenario seperti berikut:
AI dan machine learning
- Pelatihan: Anda dapat menggunakan driver CSI Cloud Storage FUSE 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, driver dapat memberikan akses ke set data pelatihan yang disimpan di bucket Cloud Storage.
- Inferensi: Anda dapat menayangkan model inferensi ML yang menyimpulkan hasil dari file yang disimpan di Cloud Storage. Anda dapat menggunakan Cloud Storage FUSE CSI untuk memuat ulang 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 CSI Cloud Storage FUSE untuk menyederhanakan tugas pemrosesan data dengan mengizinkan aplikasi mengakses dan menganalisis set data besar yang disimpan di Cloud Storage secara langsung. 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 akan memberi Anda manfaat berikut:
- Mudah disiapkan: Driver CSI Cloud Storage FUSE otomatis men-deploy dan mengelola driver di cluster Standard dan Autopilot. Penggunaan volume efemeral CSI menyederhanakan konfigurasi dan pengelolaan volume. Hal ini karena tidak diperlukan objek PersistentVolumeClaim dan PersistentVolume.
- Keamanan: Driver CSI Cloud Storage FUSE tidak memerlukan akses dengan hak istimewa. Hal ini meminimalkan risiko yang terkait dengan akses dengan hak istimewa dan menghasilkan postur keamanan yang lebih baik. Anda dapat menggunakan Workload Identity Federation untuk GKE guna mengelola autentikasi, sehingga Anda memiliki kontrol terperinci atas cara Pod mengakses objek Cloud Storage.
- Performa: Driver CSI Cloud Storage FUSE meningkatkan performa melalui fitur seperti sidecar untuk interaksi yang dioptimalkan, download paralel untuk akses data yang lebih cepat, serta caching metadata dan file untuk meningkatkan performa baca dan mengurangi latensi. Untuk mempelajari fitur ini lebih lanjut, lihat Opsi dan fitur penyesuaian performa.
- Portabilitas dan fleksibilitas: Driver CSI Cloud Storage FUSE memungkinkan Anda menggunakan semantik sistem file standar untuk memasang dan mengakses bucket Cloud Storage.
Hal ini memberikan antarmuka yang sudah dikenal yang meningkatkan portabilitas untuk beban kerja ML,
dan menghindari kebutuhan Anda untuk membuat perubahan kode atau aplikasi yang ekstensif.
Driver didukung di semua akselerator yang tersedia di GKE, termasuk GPU dan TPU. Driver CSI Cloud Storage FUSE mendukung
mode akses
ReadWriteMany
,ReadOnlyMany
, danReadWriteOnce
. Anda dapat menggunakan volume Cloud Storage FUSE di penampung init. - Kemampuan Pengelolaan: Driver ini memungkinkan Anda menjalankan Cloud Storage FUSE di latar belakang tanpa perlu menginstal atau mengelolanya. Anda juga dapat melihat insight metrik untuk Cloud Storage FUSE, termasuk penggunaan sistem file, Cloud Storage, dan cache file.
Opsi dan fitur penyesuaian performa
Driver CSI Cloud Storage FUSE dilengkapi dengan beberapa opsi penyesuaian performa dan fitur untuk mengoptimalkan cara Pod Anda mengakses data yang disimpan di bucket Cloud Storage.
Misalnya, dengan mengaktifkan penyimpanan dalam cache file dan menyesuaikan konkurensi permintaan, Anda dapat mengurangi waktu yang diperlukan untuk memuat data pelatihan secara signifikan, sehingga waktu pelatihan menjadi lebih cepat.
Sidecar native: Driver CSI Cloud Storage FUSE melampirkan penampung sidecar di Pod Anda untuk mengelola interaksi dengan Cloud Storage. Sidecar menangani pemasangan dan interaksi dengan Cloud Storage, sehingga aplikasi Anda dapat mengakses data dengan lancar. Anda dapat menyesuaikan performa dengan mengonfigurasi resource seperti CPU dan memori untuk penampung sidecar, atau dengan menyesuaikan setelan yang terkait dengan caching dan buffering. Container sidecar driver CSI Cloud Storage FUSE dan Istio dapat berdampingan dan berjalan secara serentak di Pod Anda.
Download paralel: Mulai dari GKE versi 1.30.3-gke.1571000 dan Cloud Storage FUSE v.2.4.0 dengan cache file diaktifkan, 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 (misalnya, hingga dua kali lebih cepat saat memuat Llama 2 70B).
Dukungan penyimpanan data metadata dalam cache: Driver CSI Cloud Storage FUSE meningkatkan performa dengan menyimpan metadata file dalam cache, seperti ukuran dan waktu perubahan. Driver CSI mengaktifkan cache statistik ini secara default dan mengurangi latensi dengan menyimpan informasi secara lokal, bukan memintanya berulang kali dari Cloud Storage. Anda dapat mengonfigurasi ukuran maksimum dan durasi data tetap berada 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 dalam cache file: Anda dapat menggunakan driver CSI Cloud Storage FUSE dengan penyimpanan dalam cache file untuk meningkatkan performa baca 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 ditayangkan 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 performa-harga Anda.
Untuk praktik terbaik penyesuaian performa, lihat Mengoptimalkan driver CSI Cloud Storage FUSE untuk performa GKE.
Batasan
Driver CSI memiliki batasan berikut:
- Sistem file Cloud Storage FUSE memiliki perbedaan 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.
- Driver CSI Cloud Storage FUSE tidak mendukung Pod yang berjalan di
jaringan host (
hostNetwork: true
) karena batasan Workload Identity Federation untuk GKE. - Akses level bucket yang seragam diperlukan untuk workload baca-tulis saat menggunakan Workload Identity Federation for GKE.
- Lihat masalah umum di project GitHub driver CSI Cloud Storage FUSE.
- Lihat masalah yang belum terselesaikan di project GitHub driver CSI Cloud Storage FUSE.
Persyaratan
Untuk menggunakan driver CSI Cloud Storage FUSE, 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 tertentu untuk driver CSI Cloud Storage FUSE, Anda juga harus memenuhi persyaratan berikut:
Fitur | Persyaratan versi GKE |
---|---|
Image pribadi untuk penampung sidecar, volume buffering tulis kustom, dan permintaan resource penampung sidecar | 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 Cloud Storage FUSE dalam penampung 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 Cloud Storage FUSE | 1.31.1-gke.1621000 atau yang lebih baru. |
Pengambilan data metadata | 1.31.3-gke.1162000 atau yang lebih baru. |