Mengonfigurasi penampung sidecar driver CSI Cloud Storage FUSE untuk GKE


Panduan ini menunjukkan cara mengonfigurasi resource untuk penampung sidecar driver CSI Cloud Storage, termasuk menyiapkan image pribadi, buffering tulis kustom, dan volume cache baca kustom. Biasanya, Anda tidak perlu mengubah setelan ini.

Driver CSI Cloud Storage FUSE menggunakan penampung sidecar yang dapat disesuaikan untuk memasang dan mengakses bucket Cloud Storage secara efisien. Dengan mengonfigurasi sidecar, Anda dapat menyesuaikan performa aplikasi dan penggunaan resource, yang dapat mengarah ke akses data yang lebih cepat, waktu pemrosesan yang lebih cepat, dan berpotensi menurunkan konsumsi resource secara keseluruhan untuk aplikasi Anda.

Panduan ini ditujukan untuk Developer, Admin, dan arsitek yang ingin mengoptimalkan performa, keamanan, dan efisiensi aplikasi mereka yang berinteraksi dengan GKE.

Sebelum membaca halaman ini, pastikan Anda memahami dasar-dasar konsep Cloud Storage, Kubernetes, dan containerization.

Cara kerja penampung sidecar

Driver CSI Cloud Storage FUSE menggunakan penampung sidecar untuk memasang bucket Cloud Storage agar dapat diakses sebagai sistem file lokal untuk aplikasi Kubernetes. Penampung sidecar ini, bernama gke-gcsfuse-sidecar, berjalan bersama penampung workload dalam Pod yang sama. Saat mendeteksi anotasi gke-gcsfuse/volumes: "true" dalam spesifikasi Pod, driver akan otomatis memasukkan penampung sidecar. Pendekatan penampung sidecar ini membantu memastikan keamanan dan mengelola resource secara efektif.

Penampung sidecar menangani kompleksitas pemasangan bucket Cloud Storage dan memberikan akses sistem file ke aplikasi tanpa mengharuskan Anda mengelola runtime Cloud Storage FUSE secara langsung. Anda dapat mengonfigurasi batas resource untuk penampung sidecar menggunakan anotasi seperti gke-gcsfuse/cpu-limit dan gke-gcsfuse/memory-limit. Model penampung sidecar juga memastikan bahwa instance Cloud Storage FUSE terikat dengan siklus proses workload, sehingga mencegahnya menggunakan resource yang tidak perlu. Artinya, penampung sidecar akan otomatis dihentikan saat penampung workload keluar, terutama dalam workload Tugas atau Pod dengan RestartPolicy Never.

Kompatibilitas Istio

Container sidecar driver CSI Cloud Storage FUSE dan Istio dapat berdampingan dan berjalan secara serentak di Pod Anda. Proxy sidecar Istio mengelola traffic jaringan, sedangkan sidecar CSI mengoptimalkan akses penyimpanan, sehingga aplikasi Anda dapat berinteraksi secara efisien dengan Google Cloud Storage dengan performa dan kemampuan observasi yang lebih baik.

Mengonfigurasi buffer tulis kustom

Cloud Storage FUSE melakukan staging operasi tulis di direktori lokal, lalu mengupload ke Cloud Storage pada operasi close atau fsync. Buffering operasi tulis tidak diaktifkan secara default.

Bagian ini menjelaskan cara mengonfigurasi volume buffering kustom untuk buffering tulis Cloud Storage FUSE. Skenario ini mungkin berlaku jika Anda perlu mengganti volume emptyDir default untuk Cloud Storage FUSE guna melakukan staging file dalam operasi tulis. Hal ini berguna jika Anda perlu menulis file yang lebih besar dari 10 GiB di cluster Autopilot.

Anda dapat menentukan jenis penyimpanan apa pun yang didukung oleh driver CSI Cloud Storage FUSE untuk penyimpanan dalam cache file, seperti SSD Lokal, penyimpanan berbasis Disk Persisten, dan disk RAM (memori). GKE akan menggunakan volume yang ditentukan untuk buffering penulisan file. Untuk mempelajari opsi ini lebih lanjut, lihat Memilih penyimpanan untuk mencadangkan cache file Anda.

Untuk menggunakan volume buffering kustom, Anda harus menentukan fsGroup yang bukan nol.

Contoh berikut menunjukkan cara menggunakan PersistentVolumeClaim yang telah ditentukan sebelumnya sebagai volume buffering:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    gke-gcsfuse/volumes: "true"
spec:
  securityContext:
    fsGroup: FS_GROUP
  containers:
  ...
  volumes:
  - name: gke-gcsfuse-buffer
    persistentVolumeClaim:
      claimName: BUFFER_VOLUME_PVC

Ganti kode berikut:

  • FS_GROUP: ID fsGroup.
  • BUFFER_VOLUME_PVC: nama PVC yang telah ditentukan sebelumnya.

Mengonfigurasi volume cache baca kustom

Bagian ini menjelaskan cara mengonfigurasi volume cache kustom untuk caching baca Cloud Storage FUSE.

Skenario ini mungkin berlaku jika Anda perlu mengganti volume emptyDir default untuk Cloud Storage FUSE guna meng-cache file dalam operasi baca. Anda dapat menentukan jenis penyimpanan apa pun yang didukung oleh GKE, seperti PersistentVolumeClaim, dan GKE akan menggunakan volume yang ditentukan untuk penyimpanan dalam cache file. Hal ini berguna jika Anda perlu meng-cache file yang lebih besar dari 10 GiB di cluster Autopilot. Untuk menggunakan volume cache kustom, Anda harus menentukan fsGroup yang bukan nol.

Contoh berikut menunjukkan cara menggunakan PersistentVolumeClaim yang telah ditentukan sebelumnya sebagai volume cache:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    gke-gcsfuse/volumes: "true"
spec:
  securityContext:
    fsGroup: FS_GROUP
  containers:
  ...
  volumes:
  - name: gke-gcsfuse-cache
    persistentVolumeClaim:
      claimName: CACHE_VOLUME_PVC

Ganti kode berikut:

  • FS_GROUP: ID fsGroup.
  • CACHE_VOLUME_PVC: nama PersistentVolumeClaim yang telah ditentukan sebelumnya.

Mengonfigurasi image pribadi untuk penampung sidecar

Bagian ini menjelaskan cara menggunakan image penampung sidecar jika Anda menghostingnya di registry penampung pribadi. Skenario ini mungkin berlaku jika Anda perlu menggunakan node pribadi untuk tujuan keamanan.

Untuk mengonfigurasi dan menggunakan image penampung sidecar pribadi, ikuti langkah-langkah berikut:

  1. Lihat tabel kompatibilitas GKE ini untuk menemukan image container file bantuan publik yang kompatibel.
  2. Ambil ke lingkungan lokal Anda dan kirimkan ke registry penampung pribadi Anda.
  3. Dalam manifes, tentukan penampung bernama gke-gcsfuse-sidecar hanya dengan kolom image. GKE akan menggunakan image container file bantuan yang ditentukan untuk menyiapkan injeksi container file bantuan.

    Berikut ini contohnya:

    apiVersion: v1
    kind: Pod
    metadata:
      annotations:
        gke-gcsfuse/volumes: "true"
    spec:
      containers:
      - name: gke-gcsfuse-sidecar
        image: PRIVATE_REGISTRY/gcs-fuse-csi-driver-sidecar-mounter:PRIVATE_IMAGE_TAG
      - name: main # your main workload container.
    

    Ganti kode berikut:

    • PRIVATE_REGISTRY: registry penampung pribadi Anda.
    • PRIVATE_IMAGE_TAG: tag image penampung sidecar pribadi Anda.

Langkah selanjutnya