AI 애플리케이션을 만들려면 AI 워크로드에 최적화된 안전한 비공개 Google Kubernetes Engine (GKE) 클러스터를 프로비저닝한 다음 Helm 차트를 사용하여 워크로드를 배포합니다. 이 가이드에서는 AI 애플리케이션을 배포하기 위해 맞춤설정할 수 있는 다음 템플릿을 설명합니다.
AI 사전 학습된 추론 GKE 클러스터: 고성능 모델 서빙에 필요한 기본 인프라를 만듭니다. 이 템플릿은 AI 추론에 최적화된 보안 비공개 GKE 클러스터를 설정합니다.
AI 사전 학습된 추론 GKE 워크로드(프리뷰): AI 워크로드의 구성이 포함된 Helm 차트를 배포합니다. Helm 차트를 사용하여 vLLM 제공 엔진을 통해 사전 학습된 Gemma 모델을 배포합니다. 워크로드는 효율적인 GPU 리소스 요청과 GPU 캐시 사용량을 기반으로 확장하는 수평형 포드 자동 확장 처리 (HPA)를 위해 구성됩니다.
예를 들어 다음 비즈니스 요구사항을 해결하기 위해 클러스터 및 워크로드 템플릿을 배포할 수 있습니다.
| 예 | 비즈니스 요구 | 구현 |
|---|---|---|
| 실시간 동영상 분석 | 한 보안 회사가 수백 대의 카메라에서 전송되는 동영상 스트림을 처리하여 이상이나 특정 객체를 실시간으로 감지해야 합니다. | GPU 지원 노드 풀에 동영상 처리 모델을 배포합니다. GPU는 동시 동영상 스트림의 높은 처리량과 짧은 지연 시간 요구사항을 처리할 수 있습니다. |
| 전문 문서 처리 | 보험 회사는 다양한 레이아웃과 손글씨가 포함된 수천 건의 일일 청구 양식에서 정보를 자동으로 추출해야 합니다. | GKE 클러스터를 사용하여 맞춤 모델을 호스팅하고 처리 중에 데이터가 보안 환경을 벗어나지 않도록 합니다. |
| 대량 추천 엔진 | 전자상거래 플랫폼은 연말연시 쇼핑 성수기 동안 사용자에게 맞춤형 제품 추천을 제공해야 합니다. | Google Kubernetes Engine Gateway API를 사용하여 많은 양의 사용자 트래픽을 추천 모델로 라우팅합니다. 게이트웨이 API는 지연 시간 저하 없이 갑작스러운 트래픽 급증을 처리할 수 있습니다. |
아키텍처
다음 이미지는 템플릿의 구성요소와 연결을 보여줍니다.
다음은 이 템플릿의 구성요소 구성을 설명합니다.
GKE Standard 클러스터: AI 워크로드가 실행되는 안전한 비공개 클러스터입니다.
다음 표에서는 이 템플릿의 클러스터 구성을 설명합니다.
구성 목적 node_locations가["us-central1-a", "us-central1-b", "us-central1-c"]로 설정되어 있습니다.us-central1리전의 세 영역에 클러스터의 노드를 분산하여 고가용성과 복원력을 보장합니다.enable_intranode_visibility가true로 설정되어 있습니다.VPC 흐름 로그에서 동일한 노드의 포드 간 트래픽에 대한 가시성을 사용 설정합니다. 이 가시성은 네트워크 모니터링, 문제 해결, 보안 분석에 필요합니다. {"channel":"CHANNEL_STANDARD"}을 사용하여gateway_api_config이(가) 사용 설정됩니다.GKE Inference Gateway API를 사용하면 Kubernetes 서비스로 유입되는 인그레스 트래픽을 관리할 수 있습니다. 이 API를 사용하면 세부적인 라우팅, 고급 부하 분산, 중앙화된 정책 연결을 구성할 수 있습니다. private_cluster_config.enable_private_endpoint가false로 설정되어 있습니다.private_cluster_config.enable_private_nodes은true입니다.control_plane_endpoints_config.dns_endpoint_config.allow_external_traffic이true로 설정됩니다.AI 모델이 실행되는 워커 노드에 비공개 IP 주소가 있는지 확인합니다. 이렇게 하면 노드가 공개 인터넷에서 격리됩니다. Virtual Private Cloud (VPC) 네트워크 외부에서 클러스터를 관리할 수 있도록 GKE 컨트롤 플레인이 공개적으로 액세스할 수 있도록 구성되어 있습니다. release_channel가{"channel":"REGULAR"}로 설정되어 있습니다.GKE 클러스터가 안정적이고 예측 가능한 업데이트를 수신하여 새로운 기능과 안정성 간의 균형을 유지합니다. GKE 노드 풀: 애플리케이션의 컨테이너를 실행하는 작업자 노드 그룹입니다.
다음 표에서는 이 템플릿의 노드 풀 구성을 설명합니다.
구성 목적 autoscaling.min_node_count가0로 설정되어 있습니다.autoscaling.max_node_count이3로 설정됩니다 (기본값은100).실행 중인 AI 워크로드가 없으면 노드 풀이 완전히 축소되어 유휴 기간 동안 비용이 절감됩니다. 확장 상한은 비용과 리소스 소비를 관리하는 데 도움이 됩니다. node_config.guest_accelerator매개변수가 추가됩니다.gpu_driver_installation_config.gpu_driver_version:이"LATEST"로 설정됩니다.TIME_SHARING에서gpu_sharing_config이 사용 설정되어 있습니다.max_shared_clients_per_gpu:이2로 설정됩니다.AI 추론 작업에 NVIDIA L4 GPU를 사용하도록 지정합니다. 필요한 GPU 드라이버가 자동으로 설치됩니다. 여러 개의 소규모 워크로드가 단일 GPU를 공유할 수 있습니다. node_config.machine_type가"g2-standard-8"로 변경됩니다.이 머신 유형은 L4 GPU를 보완하도록 특별히 설계되었습니다. GPU를 지원하고 AI 추론 애플리케이션을 실행하도록 vCPU (8개)와 메모리 (32GB)가 생성됩니다. node_config.oauth_scopes에https://www.googleapis.com/auth/cloud-platform이 포함됩니다.노드의 서비스 계정은 Google Cloud 서비스에 대한 광범위한 액세스 권한을 가지므로 로깅, 모니터링, 컨테이너 이미지 가져오기와 같은 작업을 위한 API 상호작용이 가능합니다. node_config.shielded_instance_config.enable_secure_boot가true로 설정되어 있습니다.보안 부팅은 부트로더와 커널이 실행되기 전에 암호화 서명을 확인하여 부팅 수준 멀웨어로부터 노드를 보호합니다.
Helm 차트 구성
다음 표에는 GKE에 AI 추론 서비스를 배포하고 확장하기 위해 맞춤설정된 Helm 차트 구성이 나와 있습니다.
| 구성 | 목적 |
|---|---|
replicaCount: 1 |
단일 초기 복제본을 만듭니다. |
image.repository: vllm/vllm-openai |
대규모 언어 모델 (LLM) 추론을 위해 최적화된 라이브러리인 vLLM 이미지를 사용하며, OpenAI 호환 API를 사용하여 노출됩니다. |
model.id: google/gemma-7b-it |
Gemma 7B 명령 조정 모델을 제공할 모델로 정의합니다. |
model.hfSecret: hf-secret |
모델에 보안 사용자 인증 정보 관리를 위해 Kubernetes 보안 비밀을 사용한 인증이 필요함을 나타냅니다. |
nvidia.com/gpu: "1"의 resources.limits 및 requests |
각 포드에 전용 GPU가 할당되도록 합니다. |
nodeSelector.cloud.google.com/gke-accelerator: nvidia-l4 |
비용 효율적이고 고성능 추론에 적합한 NVIDIA L4 GPU가 장착된 GKE Standard 노드에만 AI 모델 포드가 예약되도록 합니다. |
hpa.enabled: true |
targetCPUUtilizationPercentage: 80%에 따라 애플리케이션이 포드 수 (minReplicas: 1~maxReplicas: 10)를 자동으로 확장할 수 있는 수평형 포드 자동 확장 처리를 사용 설정합니다. 최대 부하 시 성능을 보장하고 사용량이 적을 때 비용 효율성을 보장합니다. |
tensorParallelSize: 1 |
모델이 단일 포드 내의 여러 GPU로 분할되지 않음을 나타냅니다. |
maxModelLen: 512 |
Gemma 7B 모델이 처리할 수 있는 최대 시퀀스 길이를 제어합니다. |
service.type: ClusterIP |
서비스가 클러스터 내에서 내부 액세스를 위해 구성됩니다. |
pdb.enabled: true 및 minAvailable: 1 |
고가용성을 보장하기 위해 포드 중단 예산이 사용 설정됩니다. 노드 유지보수와 같은 자발적 중단 중에도 AI 모델의 복제본이 하나 이상 사용 가능한 상태로 유지됩니다. |
AI 애플리케이션 만들기
AI 사전 학습된 추론 GKE 클러스터 및 워크로드 템플릿을 사용하여 AI 애플리케이션을 배포합니다.
AI 인프라 배포
AI 사전 학습된 추론 GKE 클러스터 템플릿을 구성하고 배포하여 AI 워크로드가 실행되는 기본 인프라를 만듭니다.
AI 사전 학습된 추론 GKE 클러스터 템플릿을 애플리케이션으로 복제 및 배포합니다.
선택한 배포 프로젝트에 GKE 클러스터가 생성됩니다.
구성요소를 구성합니다. 자세한 내용은 다음을 참조하세요.
배포를 클릭합니다. 몇 분 후에 애플리케이션이 배포됩니다.
애플리케이션 세부정보 패널에서 출력 탭을 클릭합니다.
애플리케이션의 cluster_id를 확인합니다. Helm 차트를 배포할 때 이 정보를 사용합니다.
AI 워크로드 배포
AI 사전 학습된 추론 GKE 워크로드 템플릿을 사용하여 생성한 클러스터에 AI 워크로드를 배포합니다. AI 워크로드 구성이 포함된 Helm 차트를 배포합니다.
Google 카탈로그 페이지의 AI 사전 학습된 추론 GKE 워크로드 템플릿에서 새 애플리케이션 만들기를 클릭합니다.
이름 필드에 애플리케이션의 고유한 이름을 입력합니다.
GKE 배포 대상 영역에서 다음을 수행합니다.
프로젝트 목록에서 AI 사전 학습된 추론 GKE 클러스터 애플리케이션에서 GKE 클러스터를 배포한 프로젝트를 선택합니다.
리전 목록에서 GKE 클러스터를 배포한 리전을 선택합니다.
클러스터 목록에서 배포된 GKE 클러스터를 선택합니다.
네임스페이스 목록에서 GKE 클러스터를 배포한 네임스페이스를 입력합니다. 이름을 변경하지 않은 경우
default을 입력합니다.애플리케이션 만들기를 클릭합니다.
애플리케이션이 생성되고 구성 파일이 표시됩니다.
Helm 차트 패널에서 다음을 수행합니다.
구성 세부정보를 검토합니다.
선택사항: 고유한 요구사항에 맞게 구성을 맞춤설정합니다.
Helm 차트를 클러스터에 배포하려면 배포를 클릭합니다.
자세한 단계는 애플리케이션 배포를 참고하세요.
몇 분 후 Helm 차트 구성이 GKE 클러스터에 배포됩니다.
다음 단계
- Google 템플릿을 기반으로 빌드하여 이 템플릿을 복제하고 맞춤설정하세요.
- 애플리케이션 템플릿을 디자인하여 자체 구성을 정의합니다.
- Google Cloud 아키텍처 프레임워크를 사용하여 일반적인 아키텍처 권장사항을 파악합니다.