Configure o armazenamento de comandos de vídeo do Gemini

O Gemini no Google Distributed Cloud (GDC) air-gapped permite-lhe enviar comandos de vídeo através de dois métodos principais:

Esta página explica como configurar as configurações de contentores adicionais necessárias para comandos de vídeo com o Gemini no GDC, para que o gateway de inferência possa ter acesso ao contentor.

Antes de começar

Antes de configurar o contentor para comandos de vídeo do Gemini no GDC, tem de cumprir os seguintes pré-requisitos:

  • Instale as ferramentas de CLI jq e yq. Para ver detalhes sobre a configuração do contentor de ferramentas, que contém jq e yq, consulte o manual de instruções OOPS-P0065.
  • Obtenha a função de administrador secreto do Inference Gateway (inference-gateway-secret-admin) no espaço de nomes aics-system para criar um recurso Secret. Para mais detalhes, consulte o manual de procedimentos IAM-R0005.
  • Crie uma organização do Gemini.

Configure o contentor de armazenamento para comandos de vídeo

Configure um contentor de armazenamento de objetos para permitir que os utilizadores enviem comandos de vídeo na sua organização de clientes.

Crie um contentor no projeto aics-system com os seguintes valores:

  • Nome do segmento: aics-inference-gateway
  • Namespace: aics-system
  • Descrição: Bucket for video prompts

Por predefinição, o contentor é automaticamente encriptado com V2 encryption e a localização está na mesma zona que a gestão kube-apiserver onde cria o recurso. Por conseguinte, tem de criar um recurso Bucket zonal no servidor da API Management da organização do cliente, localizado na zona do Gemini. Para mais informações sobre a API Storage, consulte a vista geral da API Storage.

O recurso Bucket tem de ser semelhante ao seguinte exemplo:

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

Substitua GEMINI_ZONE pelo nome da zona do Gemini.

Configure o acesso ao contentor

Siga estes passos para configurar o acesso ao contentor que criou para comandos de vídeo:

  1. Crie uma conta de serviço no servidor da API de gestão a partir da organização do 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
    

    Substitua CUS_ORG_MGMT_KUBECONFIG_PATH pelo caminho para o ficheiro kubeconfig do servidor da API de gestão da organização do cliente.

  2. Aplique os recursos Role e RoleBinding que dão à conta de serviço acesso de leitura e escrita ao contentor:

    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. Copie a chave de acesso do servidor da API de gestão da organização do cliente. Esta chave de acesso é montada na implementação do Inference Gateway e o Inference Gateway usa-a para aceder ao contentor. Siga estes passos para copiar a chave de acesso de um servidor de API para outro:

    1. Obtenha o nome do segredo que contém a chave de acesso:

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

      Substitua CUS_ORG_MGMT_KUBECONFIG_PATH pelo caminho para o ficheiro kubeconfig do servidor da API de gestão da organização do cliente.

      O resultado tem de ser semelhante ao seguinte exemplo:

      object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya   Opaque                           3      14m
      
    2. Copie a chave de acesso:

      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. Crie um novo segredo com a chave de acesso no cluster de infraestrutura da organização:

      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
      

      Substitua CUS_ORG_CP_KUBECONFIG_PATH pelo caminho para o ficheiro kubeconfig do cluster de infraestrutura da organização do cliente.

O que se segue?