Google Distributed Cloud (GDC) 에어 갭의 Gemini를 사용하면 다음 두 가지 기본 방법을 통해 동영상 프롬프트를 제출할 수 있습니다.
- 인라인 base64 인코딩: 동영상을 base64 형식으로 인코딩하고 API 요청 내에서 인라인 데이터로 전송합니다.
- 스토리지 버킷: 스토리지 버킷에 동영상을 업로드하고 요청의 일부로 버킷에 있는 동영상의 URL을 제공합니다.
이 페이지에서는 추론 게이트웨이가 버킷에 액세스할 수 있도록 GDC의 Gemini를 사용한 동영상 프롬프트에 필요한 추가 버킷 구성을 설정하는 방법을 안내합니다.
시작하기 전에
GDC에서 Gemini 동영상 프롬프트용 버킷을 설정하기 전에 다음 기본 요건을 충족해야 합니다.
jq및yqCLI 도구를 설치합니다.jq및yq이 포함된 도구 컨테이너 설정에 관한 자세한 내용은 OOPS-P0065 런북을 참고하세요.aics-system네임스페이스에서 추론 게이트웨이 보안 비밀 관리자 (inference-gateway-secret-admin) 역할을 획득하여Secret리소스를 만듭니다. 자세한 내용은 IAM-R0005 런북을 참고하세요.- Gemini 조직 만들기
동영상 프롬프트의 스토리지 버킷 구성
사용자가 고객 조직에서 동영상 프롬프트를 보낼 수 있도록 객체 스토리지 버킷을 구성합니다.
aics-system 프로젝트에서 다음 값을 사용하여 버킷을 만듭니다.
- 버킷 이름:
aics-inference-gateway - Namespace(네임스페이스):
aics-system - 설명:
Bucket for video prompts
기본적으로 버킷은 V2 encryption로 자동 암호화되며 위치는 리소스를 만드는 관리 kube-apiserver와 동일한 영역에 있습니다. 따라서 Gemini 영역에 있는 고객 조직의 관리 API 서버에서 영역 Bucket 리소스를 만들어야 합니다. Storage API에 관한 자세한 내용은 Storage API 개요를 참고하세요.
Bucket 리소스는 다음 예시와 같이 표시되어야 합니다.
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
labels:
object.gdc.goog/bucket-type: normal
object.gdc.goog/encryption-version: v2
object.gdc.goog/tenant-category: system
name: aics-inference-gateway
namespace: aics-system
spec:
description: Bucket for video prompts
location: GEMINI_ZONE
storageClass: Standard
GEMINI_ZONE을 Gemini 영역의 이름으로 바꿉니다.
버킷에 대한 액세스 구성
동영상 프롬프트용으로 만든 버킷에 대한 액세스를 구성하려면 다음 단계를 따르세요.
고객 조직의 관리 API 서버에서 서비스 계정을 만듭니다.
KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH kubectl --kubeconfig ${KUBECONFIG:?} apply -f - << EOF apiVersion: v1 kind: ServiceAccount metadata: name: aics-inference-gateway namespace: aics-system EOFCUS_ORG_MGMT_KUBECONFIG_PATH를 고객 조직의 관리 API 서버에 대한 kubeconfig 파일의 경로로 바꿉니다.서비스 계정에 버킷에 대한 읽기 및 쓰기 액세스 권한을 부여하는
Role및RoleBinding리소스를 적용합니다.kubectl --kubeconfig ${KUBECONFIG:?} apply -f - << EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: labels: logging.private.gdch.goog/loggingpipeline-name: default name: aics-inference-gateway-buckets-role namespace: aics-system rules: - apiGroups: - object.gdc.goog resourceNames: - aics-inference-gateway resources: - buckets verbs: - read-object - write-object EOF kubectl --kubeconfig ${KUBECONFIG:?} apply -f - << EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: labels: logging.private.gdch.goog/loggingpipeline-name: default name: audit-logs-loki-pa-buckets-binding namespace: aics-system roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: aics-inference-gateway-buckets-role subjects: - kind: ServiceAccount name: aics-inference-gateway namespace: aics-system EOF고객 조직의 관리 API 서버에서 액세스 키를 복사합니다. 이 액세스 키는 추론 게이트웨이 배포에 마운트되며 추론 게이트웨이는 이를 사용하여 버킷에 액세스합니다. 다음 단계에 따라 한 API 서버에서 다른 API 서버로 액세스 키를 복사하세요.
액세스 키가 포함된 보안 비밀의 이름을 가져옵니다.
MGMT_KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH kubectl get secret -n aics-system \ --kubeconfig {MGMT_KUBECONFIG:?} | grep object-storage-keyCUS_ORG_MGMT_KUBECONFIG_PATH를 고객 조직의 관리 API 서버 kubeconfig 파일 경로로 바꿉니다.출력은 다음 예와 비슷해야 합니다.
object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya Opaque 3 14m액세스 키를 복사합니다.
SECRET_NAME=object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya kubectl get secret/$SECRET_NAME -n aics-system --kubeconfig {MGMT_KUBECONFIG:?} -o yaml | yq .data > access-key.yaml조직 인프라 클러스터에서 액세스 키를 사용하여 새 보안 비밀을 만듭니다.
CP_KUBECONFIG=CUS_ORG_CP_KUBECONFIG_PATH (echo "apiVersion: v1"; echo "kind: Secret"; echo "metadata:"; echo " name: object-storage-key-std-sa"; \ echo " namespace: aics-system"; echo "data:"; sed 's/^/ /' access-key.yaml | cat -) > object-storage-key-std-sa.yaml kubectl apply --kubeconfig {CP_KUBECONFIG} -f object-storage-key-std-sa.yamlCUS_ORG_CP_KUBECONFIG_PATH를 고객 조직의 조직 인프라 클러스터 kubeconfig 파일의 경로로 바꿉니다.