조직 간 커뮤니케이션 사용 설정

이 페이지에서는 Gemini와 고객 조직 간에 통신을 설정하는 방법을 설명합니다.

고객 조직은 추론 게이트웨이에서 생성형 AI 라우터 및 모델 서버를 호스팅하는 Gemini 조직으로 요청을 전송합니다. 생성형 AI 라우터의 API 플랫폼 (APIP) 통합은 추론 게이트웨이의 요청을 확인합니다. APIP 통합을 통해 요청에 적절한 사용자 인증 정보 (STS 토큰)와 역할 권한이 있는지 확인할 수 있습니다.

Gemini 및 고객 조직에 대한 자세한 내용은 Gemini 및 고객 조직을 참고하세요.

시작하기 전에

조직 간 커뮤니케이션을 사용 설정하려면 다음이 필요합니다.

Gemini와 고객 조직 간 연결 설정

GDC에서 Gemini에 필요한 네트워크 대역폭을 충족하기 위해 Gemini 조직에 맞춤 하드웨어 네트워킹 구성이 있습니다. 하드웨어를 사용하고 대역폭을 늘리려면 Interconnect를 사용한 추가 구성이 필요합니다.

두 조직 간의 연결을 설정하려면 루트 관리자 클러스터에서 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: 고객 조직의 이름입니다.

데이터 네트워크를 사용하도록 추론 게이트웨이 요청 구성

추론 게이트웨이 및 생성형 AI 라우터 서비스는 각 조직의 조직 인프라 클러스터에서 실행됩니다. 기본적으로 두 서비스 모두 인프라 네트워크를 통해 라우팅되지만 데이터 네트워크를 사용해야 합니다.

Gemini 요청에 충분한 네트워크 대역폭이 제공되도록 하려면 데이터 네트워크를 통해 GenAI 라우터로 향하는 추론 게이트웨이 요청을 라우팅해야 합니다. 기본 인프라 인그레스 게이트웨이 대신 Gemini 조직의 데이터 인그레스 게이트웨이를 통해 요청을 라우팅하려면 Istio 네트워킹 리소스를 사용해야 합니다.

데이터 네트워크를 사용하도록 GenAI 라우터로 향하는 추론 게이트웨이 요청을 구성하려면 다음 단계를 따르세요.

  1. 생성형 AI 라우터 구성요소의 정규화된 도메인 이름 (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 조직의 데이터 영역에서 인그레스 게이트웨이 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. 생성형 AI 라우터 및 ID FQDN의 ServiceEntry 리소스를 추가합니다. 그런 다음 Gemini 조직의 데이터 플레인에서 인그레스 게이트웨이 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입니다.

다음 단계