En esta página se describe cómo puedes establecer una 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 GenAI Router y los servidores de modelos. La integración de la plataforma de APIs (APIP) del GenAI Router comprueba las solicitudes de Inference Gateway. La integración de la APIP asegura que las solicitudes tengan las credenciales adecuadas (token STS) y los permisos de rol.
Para obtener más información sobre Gemini y las organizaciones de clientes, consulta el artículo Gemini y las organizaciones de clientes.
Antes de empezar
Para habilitar la comunicación entre organizaciones, debes tener lo siguiente:
- Una organización de cliente y una organización de Gemini que se ejecutan en la misma zona.
- Las herramientas de la CLI
jqyyq. Para obtener información sobre la configuración del contenedor de herramientas, que contienejqyyq, consulta el runbook OOPS-P0065. - Un cliente de OIDC y un proveedor de identidades para las organizaciones de clientes y de Gemini. Para crear un cliente de OIDC, consulta el artículo Crear un cliente de OIDC en OC IT ADFS.
Establecer la conectividad entre las organizaciones de Gemini y del cliente
Para cumplir el ancho de banda de red necesario para Gemini en GDC, la organización de Gemini cuenta con una configuración de red de hardware personalizada. 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 emparejar las organizaciones de Gemini y del cliente.
El recurso personalizado debe tener el siguiente aspecto:
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
Haz los cambios siguientes:
GEMINI_ORG_NAME: el nombre de la organización de Gemini.CUSTOMER_ORG_NAME: el nombre de la organización del cliente.
Configurar las solicitudes de Inference Gateway para que usen la red de datos
Los servicios Inference Gateway y GenAI Router se ejecutan en el clúster de infraestructura de la organización correspondiente. De forma predeterminada, ambos servicios se enrutan a través de la red de infraestructura, pero deben usar la red de datos.
Para asegurarte de que haya suficiente ancho de banda de red disponible para las solicitudes de Gemini, debes enrutar las solicitudes de Inference Gateway destinadas a GenAIRouter a través de la red de datos. Debes usar recursos de red de Istio para enrutar las solicitudes a través de la pasarela de entrada de datos de la organización de Gemini en lugar de la pasarela de entrada de la infraestructura predeterminada.
Sigue estos pasos para configurar las solicitudes de Inference Gateway destinadas a GenAI Router para que usen la red de datos:
Recupera el nombre de dominio completo (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_FQDNSustituye
GEMINI_ORG_MGMT_KUBECONFIG_PATHpor la ruta al archivo kubeconfig del servidor de la API de gestión de la organización de Gemini.La salida debe tener el siguiente aspecto:
"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_FQDNLa salida debe tener el siguiente aspecto:
"service-accounts.org-1.zone1.google.gdch.test"Recupera la dirección IP de ELB de Ingress Gateway 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_ADDRESSLa salida debe tener el siguiente aspecto:
"10.137.14.0/32"Añade un recurso
ServiceEntrypara el router de GenAI y el nombre de dominio completo de la identidad. A continuación, resuelve la dirección IP estática de la dirección IP de ELB de Ingress Gateway 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 EOFSustituye
CUS_ORG_CP_KUBECONFIG_PATHpor la ruta 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 de 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_IPSustituye
CUS_ORG_MGMT_KUBECONFIG_PATHpor la ruta al archivo kubeconfig del servidor de la API de gestión de la organización del cliente.La salida debe tener el siguiente aspecto:
"10.200.32.29"Aplica una política de red de la organización al servidor de la API de gestión de la organización de Gemini para permitir las 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 EOFSustituye
GEMINI_ORG_MGMT_KUBECONFIG_PATHpor la ruta al archivo kubeconfig del servidor de la API de gestión de la organización de Gemini.Opcional: Aplica una política de red de la organización a la API de gestión del servidor 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 EOFHaz los cambios siguientes:
CUS_ORG_MGMT_KUBECONFIG_PATH: la ruta al archivo kubeconfig del servidor de la API Management de la organización del cliente.CUSTOMER_ORG_OIQ: el OIQ de la organización del cliente.