Esta página descreve como pode estabelecer comunicação entre a organização do Gemini e a organização de clientes.
A organização do cliente envia pedidos do respetivo Inference Gateway para a organização do Gemini que aloja o GenAI Router e os servidores de modelos. A integração da plataforma de APIs (APIP) do router de IA gen verifica os pedidos do gateway de inferência. A integração da APIP garante que os pedidos têm credenciais adequadas (token STS) e autorizações de funções.
Para mais informações sobre o Gemini e as organizações de clientes, consulte o artigo Gemini e organizações de clientes.
Antes de começar
Para ativar a comunicação entre organizações, tem de ter o seguinte:
- Uma organização de clientes existente e uma organização do Gemini em execução na mesma zona.
- As ferramentas de CLI
jqeyq. Para ver detalhes sobre a configuração do contentor de ferramentas, que contémjqeyq, consulte o manual de instruções OOPS-P0065. - Um cliente OIDC e um fornecedor de identidade para as organizações de clientes e do Gemini. Para criar um cliente OIDC, consulte o artigo Crie um cliente OIDC no OC IT ADFS.
Estabeleça a conetividade entre o Gemini e as organizações dos clientes
Para cumprir a largura de banda da 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, precisa de uma configuração adicional com uma interligação.
Para estabelecer a conetividade entre ambas as organizações,
crie um recurso AttachmentGroup
no cluster de administrador raiz para sincronizar o Gemini e as organizações de clientes.
O recurso personalizado tem de ser semelhante ao seguinte exemplo:
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 o seguinte:
GEMINI_ORG_NAME: o nome da organização do Gemini.CUSTOMER_ORG_NAME: o nome da organização do cliente.
Configure os pedidos do gateway de inferência para usar a rede de dados
Os serviços Inference Gateway e GenAI Router são executados no cluster de infraestrutura da organização respetiva. Por predefinição, ambos os serviços são encaminhados através da rede de infraestrutura, mas têm de usar a rede de dados.
Para garantir que está disponível largura de banda de rede suficiente para os pedidos do Gemini, tem de encaminhar os pedidos do Inference Gateway destinados ao GenAI Router através da rede de dados. Tem de usar recursos de rede do Istio para encaminhar pedidos através do gateway de entrada de dados da organização do Gemini, em vez do gateway de entrada de infraestrutura predefinido.
Siga estes passos para configurar os pedidos do Inference Gateway destinados ao GenAI Router para usar a rede de dados:
Obtenha o nome do 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 ficheiro kubeconfig do servidor da API de gestão da organização Gemini.O resultado tem de ser semelhante ao seguinte exemplo:
"genai-router.org-1.zone1.google.gdch.test"Obtenha 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_FQDNO resultado tem de ser semelhante ao seguinte exemplo:
"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_ADDRESSO resultado tem de ser semelhante ao seguinte exemplo:
"10.137.14.0/32"Adicione um recurso
ServiceEntrypara o GenAI Router e o FQDN de identidade. Em seguida, resolva para o endereço IP estático do endereço IP do ELB do gateway de entrada a partir do plano de dados da organização 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 ficheiro kubeconfig do plano de dados do cluster de infraestrutura da organização 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 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:
"10.200.32.29"Aplique uma política de rede da organização ao servidor da API de gestão a partir da organização do Gemini para permitir pedidos 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 ficheiro kubeconfig do servidor da API de gestão da organização Gemini.Opcional: aplique uma política de rede da organização ao servidor da API de gestão da organização do cliente para permitir pedidos à 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 o seguinte:
CUS_ORG_MGMT_KUBECONFIG_PATH: o caminho para o ficheiro kubeconfig do servidor da API de gestão da organização do cliente.CUSTOMER_ORG_OIQ: o OIQ da organização do cliente.