Activer la communication entre organisations

Cette page explique comment établir une communication entre l'organisation Gemini et les clients.

L'organisation cliente envoie des requêtes depuis sa passerelle d'inférence à l'organisation Gemini qui héberge le routeur d'IA générative et les serveurs de modèles. L'intégration de la plate-forme d'API (APIP) du routeur GenAI vérifie les requêtes provenant de l'Inference Gateway. L'intégration d'APIP garantit que les requêtes disposent des identifiants (jeton STS) et des autorisations de rôle appropriés.

Pour en savoir plus sur Gemini et les organisations clientes, consultez Gemini et les organisations clientes.

Avant de commencer

Pour activer la communication entre organisations, vous devez disposer des éléments suivants :

Établir la connectivité entre les organisations Gemini et celles des clients

Pour répondre à la bande passante réseau requise pour Gemini sur GDC, une configuration réseau matérielle personnalisée existe pour l'organisation Gemini. Pour utiliser le matériel et augmenter la bande passante, vous devez effectuer une configuration supplémentaire avec une interconnexion.

Pour établir la connectivité entre les deux organisations, créez une ressource AttachmentGroup dans le cluster d'administrateur racine pour associer Gemini et les organisations clientes.

La ressource personnalisée doit ressembler à l'exemple suivant :

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

Remplacez les éléments suivants :

  • GEMINI_ORG_NAME : nom de l'organisation Gemini.
  • CUSTOMER_ORG_NAME : nom de l'organisation cliente.

Configurer les requêtes Inference Gateway pour utiliser le réseau de données

Les services Inference Gateway et GenAI Router s'exécutent dans le cluster d'infrastructure de l'organisation concernée. Par défaut, les deux services sont acheminés via le réseau d'infrastructure, mais ils doivent utiliser le réseau de données.

Pour vous assurer qu'une bande passante réseau suffisante est disponible pour les requêtes Gemini, vous devez acheminer les requêtes Inference Gateway destinées au routeur GenAI via le réseau de données. Vous devez utiliser les ressources réseau Istio pour acheminer les requêtes via la passerelle d'entrée de données de l'organisation Gemini au lieu de la passerelle d'entrée d'infrastructure par défaut.

Pour configurer les requêtes Inference Gateway destinées au routeur GenAI afin qu'elles utilisent le réseau de données, procédez comme suit :

  1. Récupérez le nom de domaine complet du composant routeur IA générative :

    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
    

    Remplacez GEMINI_ORG_MGMT_KUBECONFIG_PATH par le chemin d'accès au fichier kubeconfig du serveur d'API Management de l'organisation Gemini.

    Le résultat doit ressembler à l'exemple ci-dessous :

    "genai-router.org-1.zone1.google.gdch.test"
    
  2. Récupérez le nom de domaine complet du compte de service de l'organisation 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
    

    Le résultat doit ressembler à l'exemple ci-dessous :

    "service-accounts.org-1.zone1.google.gdch.test"
    
  3. Récupérez l'adresse IP ELB de la passerelle d'entrée à partir du plan de données de l'organisation 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
    

    Le résultat doit ressembler à l'exemple ci-dessous :

    "10.137.14.0/32"
    
  4. Ajoutez une ressource ServiceEntry pour le routeur d'IA générative et le nom de domaine complet de l'identité. Ensuite, résolvez l'adresse IP statique de l'adresse IP ELB de la passerelle d'entrée à partir du plan de données de l'organisation 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
    

    Remplacez CUS_ORG_CP_KUBECONFIG_PATH par le chemin d'accès au fichier kubeconfig du plan de données du cluster d'infrastructure de l'organisation provenant de l'organisation cliente.

  5. Récupérez l'adresse IP NAT de sortie du projet système 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
    

    Remplacez CUS_ORG_MGMT_KUBECONFIG_PATH par le chemin d'accès au fichier kubeconfig du serveur d'API de gestion de l'organisation cliente.

    Le résultat doit ressembler à l'exemple ci-dessous :

    "10.200.32.29"
    
  6. Appliquez une règle de réseau d'organisation au serveur de l'API Management depuis l'organisation Gemini pour autoriser les requêtes provenant de l'organisation 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
    

    Remplacez GEMINI_ORG_MGMT_KUBECONFIG_PATH par le chemin d'accès au fichier kubeconfig du serveur d'API Management de l'organisation Gemini.

  7. Facultatif : Appliquez une règle de réseau d'organisation au serveur de l'API Management de l'organisation cliente pour autoriser les requêtes à l'organisation 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
    

    Remplacez les éléments suivants :

    • CUS_ORG_MGMT_KUBECONFIG_PATH : chemin d'accès au fichier kubeconfig du serveur d'API de gestion de l'organisation cliente.
    • CUSTOMER_ORG_OIQ : OIQ de l'organisation cliente.

Étapes suivantes