このページでは、Gemini とお客様の組織間の通信を確立する方法について説明します。
お客様の組織は、推論ゲートウェイから、GenAI ルーターとモデルサーバーをホストする Gemini 組織にリクエストを送信します。GenAI Router の API Platform(APIP)統合は、Inference Gateway からのリクエストをチェックします。APIP 統合により、リクエストに適切な認証情報(STS トークン)とロール権限が付与されます。
Gemini とお客様の組織の詳細については、Gemini とお客様の組織をご覧ください。
始める前に
組織間のコミュニケーションを有効にするには、次の要件を満たしている必要があります。
- 同じゾーンで実行されている既存のお客様の組織と Gemini 組織。
jqCLI ツールとyqCLI ツール。jqとyqを含むツール コンテナの設定の詳細については、OOPS-P0065 ランブックをご覧ください。- お客様と Gemini の両方の組織の OIDC クライアントと ID プロバイダ。OIDC クライアントを作成するには、OC IT ADFS で OIDC クライアントを作成するをご覧ください。
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 リクエストを構成する
推論ゲートウェイ サービスと GenAI ルーター サービスは、それぞれの組織の組織インフラストラクチャ クラスタで実行されます。デフォルトでは、両方のサービスがインフラストラクチャ ネットワーク経由でルーティングされますが、データ ネットワークを使用する必要があります。
Gemini リクエストに十分なネットワーク帯域幅を確保するには、GenAI Router 宛ての Inference Gateway リクエストをデータ ネットワーク経由で転送する必要があります。デフォルトのインフラストラクチャ Ingress ゲートウェイではなく、Gemini 組織のデータ Ingress ゲートウェイを介してリクエストを転送するには、Istio ネットワーキング リソースを使用する必要があります。
GenAI Router 宛ての Inference Gateway リクエストがデータ ネットワークを使用するように構成する手順は次のとおりです。
GenAI Router コンポーネントの完全修飾ドメイン名(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_FQDNGEMINI_ORG_MGMT_KUBECONFIG_PATHは、Gemini 組織の管理 API サーバーの kubeconfig ファイルのパスに置き換えます。出力は次の例のようになります。
"genai-router.org-1.zone1.google.gdch.test"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"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"GenAI Router と ID FQDN の
ServiceEntryリソースを追加します。次に、Gemini 組織のデータプレーンから Ingress ゲートウェイ 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 EOFCUS_ORG_CP_KUBECONFIG_PATHは、顧客組織の組織インフラストラクチャ クラスタのデータプレーンの kubeconfig ファイルのパスに置き換えます。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_IPCUS_ORG_MGMT_KUBECONFIG_PATHは、顧客組織の管理 API サーバーの kubeconfig ファイルのパスに置き換えます。出力は次の例のようになります。
"10.200.32.29"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 EOFGEMINI_ORG_MGMT_KUBECONFIG_PATHは、Gemini 組織の管理 API サーバーの kubeconfig ファイルのパスに置き換えます。省略可: 顧客組織から管理 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。