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:
- Uma organização do cliente e uma organização do Gemini em execução na mesma zona.
- As ferramentas CLI
jqeyq. Para detalhes sobre a configuração do contêiner de ferramentas, que contémjqeyq, consulte o runbook OOPS-P0065. - Um cliente OIDC e um provedor de identidade para organizações de clientes e do Gemini. Para criar um cliente OIDC, consulte Criar um cliente OIDC no OC IT ADFS.
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:
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_FQDNSubstitua
GEMINI_ORG_MGMT_KUBECONFIG_PATHpelo 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"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_FQDNA saída será semelhante ao exemplo a seguir:
"service-accounts.org-1.zone1.google.gdch.test"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_ADDRESSA saída será semelhante ao exemplo a seguir:
"10.137.14.0/32"Adicione um recurso
ServiceEntrypara 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 EOFSubstitua
CUS_ORG_CP_KUBECONFIG_PATHpelo caminho para o arquivo kubeconfig do plano de dados do cluster de infraestrutura da organização do cliente.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_IPSubstitua
CUS_ORG_MGMT_KUBECONFIG_PATHpelo 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"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 EOFSubstitua
GEMINI_ORG_MGMT_KUBECONFIG_PATHpelo caminho para o arquivo kubeconfig do servidor da API de gerenciamento da organização do Gemini.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 EOFSubstitua:
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.