Organisationsübergreifende Kommunikation aktivieren

Auf dieser Seite wird beschrieben, wie Sie die Kommunikation zwischen der Organisation von Gemini und der Organisation des Kunden herstellen können.

Die Kundenorganisation sendet Anfragen von ihrem Inference Gateway an die Gemini-Organisation, in der sich der GenAI-Router und die Modellserver befinden. Bei der APIP-Integration (API Platform) des GenAI-Routers werden die Anfragen vom Inference Gateway geprüft. Durch die APIP-Integration wird sichergestellt, dass die Anfragen über die entsprechenden Anmeldedaten (STS-Token) und Rollenberechtigungen verfügen.

Weitere Informationen zu Gemini und Kundenorganisationen finden Sie unter Gemini und Kundenorganisationen.

Hinweise

Damit die organisationsübergreifende Kommunikation möglich ist, müssen Sie Folgendes haben:

  • Eine vorhandene Kundenorganisation und eine Gemini-Organisation, die in derselben Zone ausgeführt werden.
  • Die CLI-Tools jq und yq. Weitere Informationen zur Einrichtung des Tool-Containers, der jq und yq enthält, finden Sie im OOPS-P0065-Runbook.
  • Ein OIDC-Client und ein Identitätsanbieter für Kunden- und Gemini-Organisationen. Informationen zum Erstellen eines OIDC-Clients finden Sie unter OIDC-Client in OC IT ADFS erstellen.

Verbindung zwischen Gemini- und Kundenorganisationen herstellen

Um die erforderliche Netzwerkbandbreite für Gemini auf GDC zu erreichen, gibt es eine benutzerdefinierte Hardware-Netzwerkkonfiguration für die Gemini-Organisation. Wenn Sie die Hardware verwenden und die Bandbreite erhöhen möchten, ist eine zusätzliche Konfiguration mit einem Interconnect erforderlich.

Um eine Verbindung zwischen den beiden Organisationen herzustellen, erstellen Sie eine AttachmentGroup-Ressource im Administrator-Root-Cluster, um Gemini- und Kundenorganisationen zu verknüpfen.

Die benutzerdefinierte Ressource muss wie im folgenden Beispiel aussehen:

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

Ersetzen Sie Folgendes:

  • GEMINI_ORG_NAME: der Name der Gemini-Organisation.
  • CUSTOMER_ORG_NAME: der Name der Kundenorganisation.

Inference Gateway-Anfragen für die Verwendung des Datennetzwerks konfigurieren

Die Dienste „Inference Gateway“ und „GenAI Router“ werden im Infrastrukturcluster der jeweiligen Organisation ausgeführt. Standardmäßig werden beide Dienste über das Infrastrukturnetzwerk weitergeleitet, sie müssen jedoch das Datennetzwerk verwenden.

Damit für Gemini-Anfragen ausreichend Netzwerkbandbreite zur Verfügung steht, müssen Sie die Inference Gateway-Anfragen, die für den GenAI-Router bestimmt sind, über das Datennetzwerk weiterleiten. Sie müssen Istio-Netzwerkressourcen verwenden, um Anfragen über das Data Ingress Gateway der Gemini-Organisation anstelle des standardmäßigen Infrastruktur-Ingress-Gateways weiterzuleiten.

So konfigurieren Sie die Inference Gateway-Anfragen, die für den GenAI Router bestimmt sind, für die Verwendung des Datennetzwerks:

  1. Rufen Sie den vollqualifizierten Domainnamen (FQDN) der GenAI Router-Komponente ab:

    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
    

    Ersetzen Sie GEMINI_ORG_MGMT_KUBECONFIG_PATH durch den Pfad zur kubeconfig-Datei des Management-API-Servers der Gemini-Organisation.

    Die Ausgabe muss wie im folgenden Beispiel aussehen:

    "genai-router.org-1.zone1.google.gdch.test"
    
  2. Rufen Sie den FQDN des Dienstkontos aus der Gemini-Organisation ab:

    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
    

    Die Ausgabe muss wie im folgenden Beispiel aussehen:

    "service-accounts.org-1.zone1.google.gdch.test"
    
  3. Rufen Sie die ELB-IP-Adresse des Ingress-Gateways von der Datenebene der Gemini-Organisation ab:

    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
    

    Die Ausgabe muss wie im folgenden Beispiel aussehen:

    "10.137.14.0/32"
    
  4. Fügen Sie eine ServiceEntry-Ressource für den GenAI-Router und den FQDN der Identität hinzu. Lösen Sie dann die statische IP-Adresse der ELB-IP-Adresse des Ingress-Gateways aus der Datenebene der Gemini-Organisation auf:

    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
    

    Ersetzen Sie CUS_ORG_CP_KUBECONFIG_PATH durch den Pfad zur kubeconfig-Datei der Datenebene des Organisationsinfrastrukturclusters der Kundenorganisation.

  5. Rufen Sie die NAT-IP-Adresse für den ausgehenden Traffic des aics-system-Systemprojekts ab:

    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
    

    Ersetzen Sie CUS_ORG_MGMT_KUBECONFIG_PATH durch den Pfad zur kubeconfig-Datei des Management-API-Servers der Kundenorganisation.

    Die Ausgabe muss wie im folgenden Beispiel aussehen:

    "10.200.32.29"
    
  6. Wenden Sie eine Organisationsnetzwerkrichtlinie auf den Management API-Server der Gemini-Organisation an, um Anfragen von der Kundenorganisation zuzulassen:

    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
    

    Ersetzen Sie GEMINI_ORG_MGMT_KUBECONFIG_PATH durch den Pfad zur kubeconfig-Datei des Management-API-Servers der Gemini-Organisation.

  7. Optional: Wenden Sie eine Organisationsnetzwerkrichtlinie auf den Management API-Server der Kundenorganisation an, um Anfragen an die Gemini-Organisation zuzulassen:

    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
    

    Ersetzen Sie Folgendes:

    • CUS_ORG_MGMT_KUBECONFIG_PATH: der Pfad zur kubeconfig-Datei des Management-API-Servers der Kundenorganisation.
    • CUSTOMER_ORG_OIQ: Der OIQ der Kundenorganisation.

Nächste Schritte