啟用跨機構通訊

本頁說明如何建立 Gemini 與客戶機構之間的通訊。

客戶機構會從 Inference Gateway 將要求傳送至 Gemini 機構,該機構會代管 GenAI Router 和模型伺服器。GenAI Router 的 API 平台 (APIP) 整合功能會檢查 Inference Gateway 的要求。APIP 整合可確保要求具備適當的憑證 (STS 權杖) 和角色權限。

如要進一步瞭解 Gemini 和客戶機構,請參閱「Gemini 和客戶機構」。

事前準備

如要啟用跨機構通訊功能,您必須具備下列條件:

在 Gemini 和客戶機構之間建立連線

如要符合 Gemini on GDC 的網路頻寬需求,Gemini 機構必須採用自訂硬體網路設定。如要使用硬體並增加頻寬,您需要透過互連網路完成額外設定。

如要在兩個機構之間建立連線,請在根管理員叢集中建立 AttachmentGroup 資源,配對 Gemini 和客戶機構。

自訂資源必須如以下範例所示:

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

更改下列內容:

  • GEMINI_ORG_NAME:Gemini 機構的名稱。
  • CUSTOMER_ORG_NAME:客戶機構的名稱。

設定 Inference Gateway 要求,以使用資料網路

Inference Gateway 和 GenAI Router 服務會在各自機構的機構基礎架構叢集中執行。根據預設,這兩項服務都會透過基礎架構網路傳輸,但必須使用資料網路。

為確保 Gemini 請求有足夠的網路頻寬,您必須透過資料網路,將 Inference Gateway 請求傳送至 GenAI Router。您必須使用 Istio 網路資源,透過 Gemini 機構的資料輸入閘道轉送要求,而非預設基礎架構輸入閘道。

請按照下列步驟,設定傳送至 GenAI 路由器的 Inference Gateway 要求使用資料網路:

  1. 擷取 GenAI 路由器元件的完整網域名稱 (FQDN):

    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
    

    GEMINI_ORG_MGMT_KUBECONFIG_PATH 替換為 Gemini 機構中管理 API 伺服器的 kubeconfig 檔案路徑。

    輸出內容必須如下列範例所示:

    "genai-router.org-1.zone1.google.gdch.test"
    
  2. 從 Gemini 機構擷取服務帳戶的 FQDN:

    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
    

    輸出內容必須如下列範例所示:

    "service-accounts.org-1.zone1.google.gdch.test"
    
  3. 從 Gemini 機構的資料層擷取 Ingress 閘道 ELB IP 位址:

    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
    

    輸出內容必須如下列範例所示:

    "10.137.14.0/32"
    
  4. 為 GenAI 路由器和身分識別 FQDN 新增 ServiceEntry 資源。然後,從 Gemini 機構的資料平面,解析 Ingress Gateway ELB IP 位址的靜態 IP 位址:

    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
    

    CUS_ORG_CP_KUBECONFIG_PATH 替換為客戶機構的機構基礎架構叢集資料平面 kubeconfig 檔案路徑。

  5. 擷取aics-system系統專案輸出 NAT IP 位址:

    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
    

    CUS_ORG_MGMT_KUBECONFIG_PATH 替換為客戶機構管理 API 伺服器的 kubeconfig 檔案路徑。

    輸出內容必須如下列範例所示:

    "10.200.32.29"
    
  6. 從 Gemini 機構對管理 API 伺服器套用機構網路政策,允許來自客戶機構的要求:

    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
    

    GEMINI_ORG_MGMT_KUBECONFIG_PATH 替換為 Gemini 機構中管理 API 伺服器的 kubeconfig 檔案路徑。

  7. 選用:從客戶機構將機構網路政策套用至管理 API 伺服器,允許對 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
    

    更改下列內容:

    • CUS_ORG_MGMT_KUBECONFIG_PATH:客戶機構管理 API 伺服器的 kubeconfig 檔案路徑。
    • CUSTOMER_ORG_OIQ:客戶機構的 OIQ。

後續步驟