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 :
- Une organisation client existante et une organisation Gemini s'exécutant dans la même zone.
- Les outils CLI
jqetyq. Pour en savoir plus sur la configuration du conteneur d'outils, qui contientjqetyq, consultez le runbook OOPS-P0065. - Un client OIDC et un fournisseur d'identité pour les organisations clientes et Gemini. Pour créer un client OIDC, consultez Créer un client OIDC dans OC IT ADFS.
É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 :
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_FQDNRemplacez
GEMINI_ORG_MGMT_KUBECONFIG_PATHpar 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"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_FQDNLe résultat doit ressembler à l'exemple ci-dessous :
"service-accounts.org-1.zone1.google.gdch.test"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_ADDRESSLe résultat doit ressembler à l'exemple ci-dessous :
"10.137.14.0/32"Ajoutez une ressource
ServiceEntrypour 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 EOFRemplacez
CUS_ORG_CP_KUBECONFIG_PATHpar 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.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_IPRemplacez
CUS_ORG_MGMT_KUBECONFIG_PATHpar 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"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 EOFRemplacez
GEMINI_ORG_MGMT_KUBECONFIG_PATHpar le chemin d'accès au fichier kubeconfig du serveur d'API Management de l'organisation Gemini.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 EOFRemplacez 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.