Questa pagina descrive come stabilire la comunicazione tra l'organizzazione Gemini e i clienti.
L'organizzazione del cliente invia richieste dal proprio Inference Gateway all'organizzazione Gemini che ospita i server del router GenAI e del modello. L'integrazione della piattaforma API (APIP) del router GenAI controlla le richieste dell'Inference Gateway. L'integrazione APIP garantisce che le richieste dispongano di credenziali appropriate (token STS) e autorizzazioni di ruolo.
Per saperne di più su Gemini e sulle organizzazioni dei clienti, vedi Gemini e le organizzazioni dei clienti.
Prima di iniziare
Per abilitare la comunicazione tra organizzazioni, devi disporre di quanto segue:
- Un'organizzazione cliente esistente e un'organizzazione Gemini in esecuzione nella stessa zona.
- Gli strumenti CLI
jqeyq. Per informazioni dettagliate sulla configurazione del contenitore degli strumenti, che contienejqeyq, consulta il runbook OOPS-P0065. - Un client OIDC e un provider di identità per le organizzazioni cliente e Gemini. Per creare un client OIDC, vedi Creare un client OIDC in OC IT ADFS.
Stabilire la connettività tra le organizzazioni Gemini e quelle dei clienti
Per soddisfare la larghezza di banda di rete richiesta per Gemini su GDC, esiste una configurazione di rete hardware personalizzata per l'organizzazione Gemini. Per utilizzare l'hardware e aumentare la larghezza di banda, è necessaria una configurazione aggiuntiva con un interconnect.
Per stabilire la connettività tra le due organizzazioni,
crea una risorsa AttachmentGroup
nel cluster di amministrazione principale per accoppiare Gemini e le organizzazioni dei clienti.
La risorsa personalizzata deve essere simile all'esempio seguente:
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
Sostituisci quanto segue:
GEMINI_ORG_NAME: il nome dell'organizzazione Gemini.CUSTOMER_ORG_NAME: il nome dell'organizzazione del cliente.
Configura le richieste del gateway di inferenza per utilizzare la rete dati
I servizi Inference Gateway e GenAI Router vengono eseguiti nel cluster dell'infrastruttura dell'organizzazione rispettiva. Per impostazione predefinita, entrambi i servizi vengono instradati tramite la rete dell'infrastruttura, ma devono utilizzare la rete dati.
Per garantire che sia disponibile una larghezza di banda di rete sufficiente per le richieste di Gemini, devi instradare le richieste del gateway di inferenza destinate al router GenAI tramite la rete dati. Devi utilizzare le risorse di networking Istio per instradare le richieste tramite il gateway di ingresso dei dati dell'organizzazione Gemini anziché il gateway di ingresso dell'infrastruttura predefinito.
Segui questi passaggi per configurare le richieste di Inference Gateway destinate al router GenAI in modo che utilizzino la rete dati:
Recupera il nome di 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_FQDNSostituisci
GEMINI_ORG_MGMT_KUBECONFIG_PATHcon il percorso del file kubeconfig del server API di gestione dell'organizzazione Gemini.L'output deve essere simile all'esempio seguente:
"genai-router.org-1.zone1.google.gdch.test"Recupera il nome di dominio completo (FQDN) del account di servizio dall'organizzazione 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_FQDNL'output deve essere simile all'esempio seguente:
"service-accounts.org-1.zone1.google.gdch.test"Recupera l'indirizzo IP ELB di Ingress Gateway dal data plane dell'organizzazione 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_ADDRESSL'output deve essere simile all'esempio seguente:
"10.137.14.0/32"Aggiungi una risorsa
ServiceEntryper il router GenAI e l'FQDN dell'identità. Poi, risolvi l'indirizzo IP statico dell'indirizzo IP ELB di Ingress Gateway dal piano dati dell'organizzazione 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 EOFSostituisci
CUS_ORG_CP_KUBECONFIG_PATHcon il percorso del file kubeconfig del data plane del cluster di infrastruttura dell'organizzazione dell'organizzazione cliente.Recupera l'indirizzo IP NAT in uscita del progetto di 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_IPSostituisci
CUS_ORG_MGMT_KUBECONFIG_PATHcon il percorso del file kubeconfig del server API di gestione dell'organizzazione del cliente.L'output deve essere simile all'esempio seguente:
"10.200.32.29"Applica un criterio di rete dell'organizzazione al server API di gestione dall'organizzazione Gemini per consentire le richieste dell'organizzazione 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 EOFSostituisci
GEMINI_ORG_MGMT_KUBECONFIG_PATHcon il percorso del file kubeconfig del server API di gestione dell'organizzazione Gemini.(Facoltativo) Applica una policy di rete dell'organizzazione al server API di gestione dall'organizzazione del cliente per consentire le richieste all'organizzazione 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 EOFSostituisci quanto segue:
CUS_ORG_MGMT_KUBECONFIG_PATH: il percorso del file kubeconfig del server API di gestione dell'organizzazione del cliente.CUSTOMER_ORG_OIQ: l'OIQ dell'organizzazione del cliente.