En esta página, se describe cómo puedes establecer comunicación entre la organización de Gemini y los clientes.
La organización del cliente envía solicitudes desde su Inference Gateway a la organización de Gemini que aloja el router de IA generativa y los servidores de modelos. La integración de la API Platform (APIP) del GenAI Router verifica las solicitudes de Inference Gateway. La integración de la API de APIP garantiza que las solicitudes tengan las credenciales adecuadas (token de STS) y los permisos de rol.
Para obtener más información sobre Gemini y las organizaciones de clientes, consulta Gemini y las organizaciones de clientes.
Antes de comenzar
Para habilitar la comunicación entre organizaciones, debes cumplir con los siguientes requisitos:
- Una organización del cliente existente y una organización de Gemini que se ejecutan en la misma zona.
- Las herramientas de la CLI de
jqyyqPara obtener detalles sobre la configuración del contenedor de herramientas, que contienejqyyq, consulta el manual de ejecución OOPS-P0065. - Un cliente de OIDC y un proveedor de identidad para las organizaciones de clientes y de Gemini Para crear un cliente de OIDC, consulta Crea un cliente de OIDC en OC IT ADFS.
Establece la conectividad entre las organizaciones de Gemini y del cliente
Para cumplir con el ancho de banda de red requerido para Gemini en GDC, existe una configuración de red de hardware personalizada para la organización de Gemini. Para usar el hardware y aumentar el ancho de banda, necesitas una configuración adicional con una interconexión.
Para establecer la conectividad entre ambas organizaciones, crea un recurso AttachmentGroup en el clúster de administrador raíz para vincular las organizaciones de Gemini y del cliente.
El recurso personalizado debe verse como el siguiente ejemplo:
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
Reemplaza lo siguiente:
GEMINI_ORG_NAME: Es el nombre de la organización de Gemini.CUSTOMER_ORG_NAME: Es el nombre de la organización del cliente.
Configura las solicitudes de Inference Gateway para usar la red de datos
Los servicios de Inference Gateway y GenAI Router se ejecutan en el clúster de infraestructura de la organización respectiva. De forma predeterminada, ambos servicios se enrutan a través de la red de infraestructura, pero deben usar la red de datos.
Para garantizar que haya suficiente ancho de banda de red disponible para las solicitudes de Gemini, debes enrutar las solicitudes de Inference Gateway destinadas al GenAI Router a través de la red de datos. Debes usar recursos de redes de Istio para enrutar las solicitudes a través de la puerta de enlace de entrada de datos de la organización de Gemini en lugar de la puerta de enlace de entrada de infraestructura predeterminada.
Sigue estos pasos para configurar las solicitudes de Inference Gateway destinadas al GenAI Router para que usen la red de datos:
Recupera el nombre de dominio completamente calificado (FQDN) del 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_FQDNReemplaza
GEMINI_ORG_MGMT_KUBECONFIG_PATHpor la ruta de acceso al archivo kubeconfig del servidor de la API de administración de la organización de Gemini.El resultado debe verse como el siguiente ejemplo:
"genai-router.org-1.zone1.google.gdch.test"Recupera el FQDN de la cuenta de servicio de la organización de 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_FQDNEl resultado debe verse como el siguiente ejemplo:
"service-accounts.org-1.zone1.google.gdch.test"Recupera la dirección IP del ELB de la puerta de enlace de entrada del plano de datos de la organización de 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_ADDRESSEl resultado debe verse como el siguiente ejemplo:
"10.137.14.0/32"Agrega un recurso
ServiceEntrypara el enrutador de IA generativa y el FQDN de identidad. Luego, resuelve la dirección IP estática de la dirección IP del ELB de la puerta de enlace de entrada desde el plano de datos de la organización de 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 EOFReemplaza
CUS_ORG_CP_KUBECONFIG_PATHpor la ruta de acceso al archivo kubeconfig del plano de datos del clúster de infraestructura de la organización de la organización del cliente.Recupera la dirección IP de NAT de salida del proyecto del 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_IPReemplaza
CUS_ORG_MGMT_KUBECONFIG_PATHpor la ruta de acceso al archivo kubeconfig del servidor de la API de administración de la organización del cliente.El resultado debe verse como el siguiente ejemplo:
"10.200.32.29"Aplica una política de red de la organización a la API de administración del servidor de la organización de Gemini para permitir solicitudes de la organización del 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 EOFReemplaza
GEMINI_ORG_MGMT_KUBECONFIG_PATHpor la ruta de acceso al archivo kubeconfig del servidor de la API de administración de la organización de Gemini.Opcional: Aplica una política de red de la organización al servidor de la API de administración de la organización del cliente para permitir solicitudes a la organización de 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 EOFReemplaza lo siguiente:
CUS_ORG_MGMT_KUBECONFIG_PATH: Es la ruta al archivo kubeconfig del servidor de la API de administración de la organización del cliente.CUSTOMER_ORG_OIQ: Es el OIQ de la organización del cliente.