Ativar a comunicação entre organizações

Nesta página, descrevemos como estabelecer a comunicação entre o Gemini e a organização dos clientes.

A organização do cliente envia solicitações do Gateway de inferência para a organização do Gemini, que hospeda o roteador de IA generativa e os servidores de modelos. A integração da plataforma de API (APIP) do GenAI Router verifica as solicitações do Inference Gateway. A integração do APIP garante que as solicitações tenham as credenciais adequadas (token do STS) e permissões de função.

Para mais informações sobre o Gemini e as organizações de clientes, consulte Gemini e organizações de clientes.

Antes de começar

Para ativar a comunicação entre organizações, você precisa ter o seguinte:

Estabelecer a conectividade entre as organizações do Gemini e do cliente

Para atender à largura de banda de rede necessária para o Gemini no GDC, existe uma configuração de rede de hardware personalizada para a organização do Gemini. Para usar o hardware e aumentar a largura de banda, é necessário fazer uma configuração adicional com uma interconexão.

Para estabelecer a conectividade entre as duas organizações, crie um recurso AttachmentGroup no cluster de administrador raiz para parear o Gemini e as organizações dos clientes.

O recurso personalizado precisa ser semelhante ao exemplo a seguir:

IDENTIFIER=ag-gdc-gemini
GEMINI_ORG_NAME=GEMINI_ORG_NAME
CUSTOMER_ORG_NAME=CUSTOMER_ORG_NAME

apiVersion: system.private.gdc.goog/v1alpha1
kind: AttachmentGroup
metadata:
  name: attachment-group-$IDENTIFIER
  namespace: gpc-system
spec:
  entities:
  - domainType: OrgMixed
    orgName: $CUSTOMER_ORG_NAME
  - domainType: OrgMixed
    orgName: $GEMINI_ORG_NAME
  identifier: $IDENTIFIER

Substitua:

  • GEMINI_ORG_NAME: o nome da organização do Gemini.
  • CUSTOMER_ORG_NAME: o nome da organização do cliente.

Configurar as solicitações do Inference Gateway para usar a rede de dados

Os serviços Inference Gateway e GenAI Router são executados no cluster de infraestrutura da organização respectiva. Por padrão, os dois serviços são roteados pela rede de infraestrutura, mas precisam usar a rede de dados.

Para garantir que haja largura de banda de rede suficiente para solicitações do Gemini, encaminhe as solicitações do Inference Gateway destinadas ao GenAI Router pela rede de dados. Você precisa usar os recursos de rede do Istio para rotear solicitações pelo gateway de entrada de dados da organização do Gemini em vez do gateway de entrada de infraestrutura padrão.

Siga estas etapas para configurar as solicitações do Inference Gateway destinadas ao GenAI Router para usar a rede de dados:

  1. Recupere o nome de domínio totalmente qualificado (FQDN) do componente GenAI Router:

    KUBECONFIG=GEMINI_ORG_MGMT_KUBECONFIG_PATH
    
    GEN_AI_ROUTER_FQDN=$(kubectl --kubeconfig ${KUBECONFIG:?} \
      get dnsregistrations.network.private.gdc.goog/genai-router \
      -n gemini-system -o json | jq '.status.fqdn')
    
    echo $GEN_AI_ROUTER_FQDN
    

    Substitua GEMINI_ORG_MGMT_KUBECONFIG_PATH pelo caminho para o arquivo kubeconfig do servidor da API de gerenciamento da organização do Gemini.

    A saída será semelhante ao exemplo a seguir:

    "genai-router.org-1.zone1.google.gdch.test"
    
  2. Recupere o FQDN da conta de serviço da organização do Gemini:

    GEM_ORG_SERVICE_ACCOUNT_SERVICE_FQDN=$(kubectl --kubeconfig ${KUBECONFIG:?} \
      get dnsregistrations.network.private.gdc.goog/service-accounts-infra-external \
      -n iam-system -o json | jq '.status.fqdn')
    
    echo $GEM_ORG_SERVICE_ACCOUNT_SERVICE_FQDN
    

    A saída será semelhante ao exemplo a seguir:

    "service-accounts.org-1.zone1.google.gdch.test"
    
  3. Recupere o endereço IP do ELB do gateway de entrada do plano de dados da organização do Gemini:

    KUBECONFIG=GEMINI_ORG_MGMT_KUBECONFIG_PATH
    
    GEM_DATA_INGRSS_ELB_IP_ADDRESS=$(kubectl get Forwardingruleexternals/dataplane-ingress-gateway \
      -n istio-system -ojson | jq .status.cidr)
    
    echo $GEM_DATA_INGRSS_ELB_IP_ADDRESS
    

    A saída será semelhante ao exemplo a seguir:

    "10.137.14.0/32"
    
  4. Adicione um recurso ServiceEntry para o roteador de IA generativa e o FQDN de identidade. Em seguida, resolva o endereço IP estático do endereço IP do ELB do gateway de entrada no plano de dados da organização do Gemini:

    KUBECONFIG=CUS_ORG_CP_KUBECONFIG_PATH
    
    kubectl apply --kubeconfig ${KUBECONFIG:?} -f - << EOF
    apiVersion: networking.istio.io/v1beta1
    kind: ServiceEntry
    metadata:
      name: genai-service-entry
      namespace: aics-system
    spec:
      hosts:
      - $GEN_AI_ROUTER_FQDN
      ports:
      - number: 443
        name: https
        protocol: TLS
      location: MESH_EXTERNAL
      resolution: STATIC
      endpoints:
      - address: $GEM_DATA_INGRSS_ELB_IP_ADDRESS
    EOF
    
    kubectl apply --kubeconfig ${KUBECONFIG:?} -f - << EOF
    apiVersion: networking.istio.io/v1beta1
    kind: ServiceEntry
    metadata:
      name: identity-service-entry
      namespace: aics-system
    spec:
      hosts:
      -  $GEM_ORG_SERVICE_ACCOUNT_SERVICE_FQDN
      ports:
      - number: 443
        name: https
        protocol: TLS
      location: MESH_EXTERNAL
      resolution: STATIC
      endpoints:
      - address: $GEM_DATA_INGRSS_ELB_IP_ADDRESS
    EOF
    

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

  5. Recupere o endereço IP NAT de saída do projeto do sistema aics-system:

    KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH
    
    IG_PROJECT_EGRESS_IP=$(kubectl --kubeconfig ${KUBECONFIG:?} get projects/aics-system \
      -n gpc-system -ojson | jq .status.clusters[0].egressNATIPAddress)
    
    echo $IG_PROJECT_EGRESS_IP
    

    Substitua CUS_ORG_MGMT_KUBECONFIG_PATH pelo caminho do arquivo kubeconfig do servidor da API de gerenciamento da organização do cliente.

    A saída será semelhante ao exemplo a seguir:

    "10.200.32.29"
    
  6. Aplique uma política de rede da organização ao servidor da API de gerenciamento da organização do Gemini para permitir solicitações da organização do cliente:

    KUBECONFIG=GEMINI_ORG_MGMT_KUBECONFIG_PATH
    
    kubectl apply --kubeconfig ${KUBECONFIG:?} -f - << EOF
    apiVersion: networking.gdc.goog/v1
    kind: OrganizationNetworkPolicy
    metadata:
      name: allow-all-access
      namespace: platform
    spec:
      subject:
        services:
          matchTypes:
          - "all"
      ingress:
        - from:
          - ipBlock:
             cidr: $IG_PROJECT_EGRESS_IP
    EOF
    

    Substitua GEMINI_ORG_MGMT_KUBECONFIG_PATH pelo caminho para o arquivo kubeconfig do servidor da API de gerenciamento da organização do Gemini.

  7. Opcional: aplique uma política de rede da organização ao servidor da API de gerenciamento da organização do cliente para permitir solicitações à organização do Gemini:

    KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH
    
    kubectl apply --kubeconfig ${KUBECONFIG:?} -f - << EOF
    apiVersion: networking.gdc.goog/v1
    kind: OrganizationNetworkPolicy
    metadata:
      name: allow-all-access
      namespace: platform
    spec:
      ingress:
      - from:
        - ipBlock:
            cidr: CUSTOMER_ORG_OIQ
      subject:
        services:
          matchTypes:
          - all
        subjectType: ManagedService
    EOF
    

    Substitua:

    • CUS_ORG_MGMT_KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor da API de gerenciamento da organização do cliente.
    • CUSTOMER_ORG_OIQ: o OIQ da organização do cliente.

A seguir