Mengonfigurasi penyimpanan untuk perintah video Gemini

Gemini di Google Distributed Cloud (GDC) dengan air gap memungkinkan Anda mengirimkan perintah video melalui dua metode utama:

  • Encoding base64 inline: Enkode video ke dalam format base64 dan kirimkan sebagai data inline dalam permintaan API.
  • Bucket penyimpanan: Upload video ke bucket penyimpanan dan berikan URL video di bucket sebagai bagian dari permintaan.

Halaman ini memandu Anda menyiapkan konfigurasi bucket tambahan yang diperlukan untuk perintah video dengan Gemini di GDC sehingga Inference Gateway dapat memiliki akses ke bucket.

Sebelum memulai

Sebelum menyiapkan bucket untuk perintah video Gemini di GDC, Anda harus memenuhi prasyarat berikut:

  • Instal alat CLI jq dan yq. Untuk mengetahui detail penyiapan penampung alat, yang berisi jq dan yq, lihat buku pedoman OOPS-P0065.
  • Dapatkan peran Admin Secret Inference Gateway (inference-gateway-secret-admin) di namespace aics-system untuk membuat resource Secret. Untuk mengetahui detail selengkapnya, lihat buku pedoman IAM-R0005.
  • Buat organisasi Gemini.

Mengonfigurasi bucket penyimpanan untuk perintah video

Konfigurasi bucket penyimpanan objek untuk mengizinkan pengguna mengirimkan perintah video di organisasi pelanggan Anda.

Buat bucket di project aics-system dengan nilai berikut:

  • Nama bucket: aics-inference-gateway
  • Namespace: aics-system
  • Deskripsi: Bucket for video prompts

Secara default, bucket dienkripsi secara otomatis dengan V2 encryption, dan lokasinya berada di zona yang sama dengan kube-apiserver pengelolaan tempat Anda membuat resource. Oleh karena itu, Anda harus membuat resource Bucket zonal di server API pengelolaan dari organisasi pelanggan, yang berada di zona Gemini. Untuk mengetahui informasi selengkapnya tentang Storage API, lihat Ringkasan Storage API.

Resource Bucket harus terlihat seperti contoh berikut:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  labels:
    object.gdc.goog/bucket-type: normal
    object.gdc.goog/encryption-version: v2
    object.gdc.goog/tenant-category: system
  name: aics-inference-gateway
  namespace: aics-system
spec:
  description: Bucket for video prompts
  location: GEMINI_ZONE
  storageClass: Standard

Ganti GEMINI_ZONE dengan nama zona Gemini.

Mengonfigurasi akses ke bucket

Ikuti langkah-langkah berikut untuk mengonfigurasi akses ke bucket yang Anda buat untuk perintah video:

  1. Buat akun layanan di server API pengelolaan dari organisasi pelanggan:

    KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH
    
    kubectl --kubeconfig ${KUBECONFIG:?} apply -f - << EOF
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: aics-inference-gateway
      namespace: aics-system
    EOF
    

    Ganti CUS_ORG_MGMT_KUBECONFIG_PATH dengan jalur ke file kubeconfig server API pengelolaan dari organisasi pelanggan.

  2. Terapkan resource Role dan RoleBinding yang memberi akun layanan akses baca dan tulis ke bucket:

    kubectl --kubeconfig ${KUBECONFIG:?} apply -f - << EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      labels:
        logging.private.gdch.goog/loggingpipeline-name: default
      name: aics-inference-gateway-buckets-role
      namespace: aics-system
    rules:
    - apiGroups:
      - object.gdc.goog
      resourceNames:
      - aics-inference-gateway
      resources:
      - buckets
      verbs:
      - read-object
      - write-object
    EOF
    
    kubectl --kubeconfig ${KUBECONFIG:?} apply -f - << EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      labels:
        logging.private.gdch.goog/loggingpipeline-name: default
      name: audit-logs-loki-pa-buckets-binding
      namespace: aics-system
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: aics-inference-gateway-buckets-role
    subjects:
    - kind: ServiceAccount
      name: aics-inference-gateway
      namespace: aics-system
    EOF
    
  3. Salin kunci akses dari server API pengelolaan dari organisasi pelanggan. Kunci akses ini di-mount ke deployment Inference Gateway, dan Inference Gateway menggunakannya untuk mengakses bucket. Ikuti langkah-langkah berikut untuk menyalin kunci akses dari satu server API ke server API lainnya:

    1. Dapatkan nama secret yang berisi kunci akses:

      MGMT_KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH
      
      kubectl get secret -n aics-system \
        --kubeconfig {MGMT_KUBECONFIG:?} | grep object-storage-key
      

      Ganti CUS_ORG_MGMT_KUBECONFIG_PATH dengan jalur ke file kubeconfig server API pengelolaan dari organisasi pelanggan.

      Output harus terlihat mirip dengan contoh berikut:

      object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya   Opaque                           3      14m
      
    2. Salin kunci akses:

      SECRET_NAME=object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya
      
      kubectl get secret/$SECRET_NAME -n aics-system
        --kubeconfig {MGMT_KUBECONFIG:?} -o yaml | yq .data > access-key.yaml
      
    3. Buat secret baru dengan kunci akses di cluster infrastruktur org:

      CP_KUBECONFIG=CUS_ORG_CP_KUBECONFIG_PATH
      
      (echo "apiVersion: v1"; echo "kind: Secret"; echo "metadata:"; echo "  name: object-storage-key-std-sa"; \
      echo "  namespace: aics-system"; echo "data:"; sed 's/^/  /' access-key.yaml | cat -) > object-storage-key-std-sa.yaml
      
      kubectl apply --kubeconfig {CP_KUBECONFIG} -f object-storage-key-std-sa.yaml
      

      Ganti CUS_ORG_CP_KUBECONFIG_PATH dengan jalur ke file kubeconfig cluster infrastruktur org dari organisasi pelanggan.

Langkah berikutnya