Menyiapkan driver CSI Cloud Storage FUSE untuk GKE


Halaman ini menjelaskan cara menyiapkan dan bersiap menggunakan driver CSI Cloud Storage FUSE untuk GKE.

Untuk menggunakan driver CSI Cloud Storage FUSE, lakukan langkah-langkah berikut:

Membuat bucket Cloud Storage

Jika Anda belum melakukannya, buat bucket Cloud Storage. Anda akan memasang bucket ini sebagai volume di cluster GKE. Untuk meningkatkan performa, tetapkan Location type ke Region, lalu pilih region yang cocok dengan cluster GKE Anda.

Mengaktifkan driver CSI Cloud Storage FUSE

Ikuti langkah-langkah ini, bergantung pada apakah Anda menggunakan cluster GKE Autopilot atau Standard. Sebaiknya gunakan cluster Autopilot untuk pengalaman Kubernetes yang dikelola sepenuhnya. Untuk memilih mode yang paling sesuai dengan workload Anda, lihat Memilih mode operasi GKE.

Autopilot

Driver CSI Cloud Storage FUSE diaktifkan secara default untuk cluster Autopilot. Anda dapat langsung ke Mengonfigurasi akses ke bucket Cloud Storage.

Standard

Jika cluster Standard Anda mengaktifkan driver CSI Cloud Storage FUSE, lanjutkan ke bagian Mengonfigurasi akses ke bucket Cloud Storage

Untuk membuat cluster Standard dengan driver CSI Cloud Storage FUSE diaktifkan, Anda dapat menggunakan perintah gcloud container clusters create`:

gcloud container clusters create CLUSTER_NAME \
    --addons GcsFuseCsiDriver \
    --cluster-version=VERSION \
    --location=LOCATION \
    --workload-pool=PROJECT_ID.svc.id.goog

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster Anda.
  • VERSION: nomor versi GKE. Anda harus memilih 1.24 atau yang lebih baru.
  • LOCATION: region atau zona Compute Engine untuk cluster.
  • PROJECT_ID: project ID Anda.

Untuk mengaktifkan driver di cluster Standard yang sudah ada, gunakan perintah [gcloud container clusters update](/sdk/gcloud/reference/container/clusters/update)`:

gcloud container clusters update CLUSTER_NAME \
    --update-addons GcsFuseCsiDriver=ENABLED \
    --location=LOCATION

Untuk memverifikasi bahwa driver CSI Cloud Storage FUSE diaktifkan di cluster Anda, jalankan perintah berikut:

gcloud container clusters describe CLUSTER_NAME \
    --location=LOCATION \
    --project=PROJECT_ID \
    --format="value(addonsConfig.gcsFuseCsiDriverConfig.enabled)"

Mengonfigurasi akses ke bucket Cloud Storage

Driver CSI Cloud Storage FUSE menggunakan Workload Identity Federation untuk GKE sehingga Anda dapat menetapkan izin terperinci tentang cara Pod GKE mengakses data yang disimpan di Cloud Storage.

Agar bucket Cloud Storage Anda dapat diakses oleh cluster GKE, lakukan autentikasi menggunakan Workload Identity Federation untuk GKE dengan bucket Cloud Storage yang ingin Anda pasang dalam spesifikasi Pod:

  1. Jika Anda belum mengaktifkan Workload Identity Federation untuk GKE, ikuti langkah-langkah ini untuk mengaktifkannya.
  2. Dapatkan kredensial untuk cluster Anda:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --location=LOCATION
    

    Ganti kode berikut:

  3. Buat namespace yang akan digunakan untuk Akun Layanan Kubernetes. Anda juga dapat menggunakan namespace default atau namespace apa pun yang sudah ada.

    kubectl create namespace NAMESPACE
    

    Ganti NAMESPACE dengan nama namespace Kubernetes untuk Akun Layanan Kubernetes.

  4. Buat Akun Layanan Kubernetes yang akan digunakan aplikasi Anda. Anda juga dapat menggunakan Akun Layanan Kubernetes yang sudah ada di namespace mana pun, termasuk Akun Layanan Kubernetes default.

    kubectl create serviceaccount KSA_NAME \
        --namespace NAMESPACE
    

    Ganti KSA_NAME dengan nama ServiceAccount Kubernetes Anda.

  5. Berikan salah satu peran IAM untuk Cloud Storage ke Akun Layanan Kubernetes. Ikuti langkah-langkah ini, bergantung pada apakah Anda memberikan akses ServiceAccount Kubernetes ke bucket Cloud Storage tertentu saja, atau akses global ke semua bucket dalam project.

    Akses bucket tertentu

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
        --member "principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME" \
        --role "ROLE_NAME"
    

    Ganti kode berikut:

    • BUCKET_NAME: nama bucket Cloud Storage Anda.
    • PROJECT_NUMBER: nomor project numerik cluster GKE Anda. Untuk menemukan nomor project Anda, lihat Mengidentifikasi project.
    • PROJECT_ID: project ID cluster GKE Anda.
    • NAMESPACE: nama namespace Kubernetes untuk Akun Layanan Kubernetes.
    • KSA_NAME: nama ServiceAccount Kubernetes baru Anda.
    • ROLE_NAME: peran IAM yang akan ditetapkan ke ServiceAccount Kubernetes Anda.
      • Untuk beban kerja hanya baca, gunakan peran Storage Object Viewer (roles/storage.objectViewer).
      • Untuk beban kerja baca-tulis, gunakan peran Storage Object User (roles/storage.objectUser).

    Akses bucket global

    gcloud projects add-iam-policy-binding GCS_PROJECT \
        --member "principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME" \
        --role "ROLE_NAME"
    

    Ganti kode berikut:

    • GCS_PROJECT: project ID bucket Cloud Storage Anda.
    • PROJECT_NUMBER: nomor project numerik cluster GKE Anda. Untuk menemukan nomor project Anda, lihat Mengidentifikasi project.
    • PROJECT_ID: project ID cluster GKE Anda.
    • NAMESPACE: nama namespace Kubernetes untuk Akun Layanan Kubernetes.
    • KSA_NAME: nama ServiceAccount Kubernetes baru Anda.
    • ROLE_NAME: peran IAM yang akan ditetapkan ke ServiceAccount Kubernetes Anda.
      • Untuk beban kerja hanya baca, gunakan peran Storage Object Viewer (roles/storage.objectViewer).
      • Untuk beban kerja baca-tulis, gunakan peran Storage Object User (roles/storage.objectUser).

Langkah selanjutnya