Configurar el almacenamiento de las peticiones de vídeo de Gemini

Gemini en Google Distributed Cloud (GDC) aislado te permite enviar peticiones de vídeo de dos formas principales:

En esta página se explica cómo configurar las configuraciones de los contenedores adicionales que se necesitan para las peticiones de vídeo con Gemini en GDC, de modo que Inference Gateway pueda acceder al contenedor.

Antes de empezar

Antes de configurar el contenedor para las peticiones de vídeo de Gemini en GDC, debes cumplir los siguientes requisitos previos:

  • Instala las herramientas de la CLI jq y yq. Para obtener información sobre la configuración del contenedor de herramientas, que contiene jq y yq, consulta el runbook OOPS-P0065.
  • Obtén el rol de administrador secreto de Inference Gateway (inference-gateway-secret-admin) en el espacio de nombres aics-system para crear un recurso Secret. Para obtener más información, consulta el runbook IAM-R0005.
  • Crea una organización de Gemini.

Configurar el segmento de almacenamiento de las peticiones de vídeo

Configura un contenedor de almacenamiento de objetos para que los usuarios puedan enviar peticiones de vídeo en tu organización de cliente.

Crea un contenedor en el proyecto aics-system con los siguientes valores:

  • Nombre de la categoría: aics-inference-gateway
  • Espacio de nombres: aics-system
  • Descripción: Bucket for video prompts

De forma predeterminada, el segmento se cifra automáticamente con V2 encryption y se encuentra en la misma zona que la gestión kube-apiserver donde creas el recurso. Por lo tanto, debes crear un recurso Bucket zonal en el servidor de la API de gestión de la organización del cliente, ubicado en la zona de Gemini. Para obtener más información sobre la API Storage, consulta la descripción general de la API Storage.

El recurso Bucket debe tener el siguiente aspecto:

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

Sustituye GEMINI_ZONE por el nombre de la zona de Gemini.

Configurar el acceso al segmento

Sigue estos pasos para configurar el acceso al segmento que has creado para las peticiones de vídeo:

  1. Crea una cuenta de servicio en el servidor de la API de gestión de la organización del cliente:

    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
    

    Sustituye CUS_ORG_MGMT_KUBECONFIG_PATH por la ruta al archivo kubeconfig del servidor de la API de gestión de la organización del cliente.

  2. Aplica los recursos Role y RoleBinding que dan a la cuenta de servicio acceso de lectura y escritura al segmento:

    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. Copia la clave de acceso del servidor de la API de gestión de la organización del cliente. Esta clave de acceso se monta en la implementación de Inference Gateway y Inference Gateway la usa para acceder al segmento. Sigue estos pasos para copiar la clave de acceso de un servidor de API a otro:

    1. Obtén el nombre del secreto que contiene la clave de acceso:

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

      Sustituye CUS_ORG_MGMT_KUBECONFIG_PATH por la ruta al archivo kubeconfig del servidor de la API de gestión de la organización del cliente.

      La salida debe ser similar al siguiente ejemplo:

      object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya   Opaque                           3      14m
      
    2. Copia la clave de acceso:

      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. Crea un secreto con una clave de acceso en el clúster de infraestructura de la organización:

      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
      

      Sustituye CUS_ORG_CP_KUBECONFIG_PATH por la ruta al archivo kubeconfig del clúster de infraestructura de la organización de la organización del cliente.

Siguientes pasos