많은 GKE 고객이 대규모 AI/ML 워크로드를 실행하거나 독점 모델 가중치와 같은 민감한 지식 재산 (IP)을 보유하고 있습니다. 이 문서에서는 여러 리전에서 실행되고 클러스터의 노드에서 관리되는 원격 인스턴스에서 컨테이너를 실행하는 인프라 아키텍처를 설명합니다. 다양한 운영체제 (OS) 이미지와 기능을 포함한 이 연결된 인프라를 GKE Hypercluster 라고 합니다.
GKE Hypercluster는 GKE 또는 AI 하이퍼컴퓨터의 한계를 초과하는 보안 및 확장성을 원하는 고객을 대상으로 하며 이러한 목표를 달성하기 위해 운영상의 마찰 증가를 감수할 의향이 있는 고객을 대상으로 합니다.
GKE Hypercluster를 사용해야 하는 경우
기본적으로 GKE 클러스터는 특별한 보안 및 확장성 요구사항이 있는 워크로드를 비롯한 대부분의 프로덕션 AI 워크로드의 요구사항을 충족하도록 설계되었습니다. 예를 들어 GKE는 다음과 같은 사용 사례를 지원합니다.
- 컨피덴셜 Google Kubernetes Engine 노드에서 GPU를 실행하고 워크로드에서 vTPM 또는 하드웨어 기반 컨피덴셜 컴퓨팅 모듈에 액세스합니다.
- GKE용 워크로드 아이덴티티 제휴를 사용하여 암호화된 데이터에 대한 액세스를 특정 승인된 ID로 제한합니다.
- ComputeClasses 및 노드 풀 자동 생성을 사용하여 사용 가능한 용량을 기반으로 TPU 및 GPU 노드를 배포합니다.
- 액세스 승인, 액세스 투명성, GKE 컨트롤 플레인 권한을 사용하여 Google 직원의 액세스를 제어하고 관찰합니다.
GKE Hypercluster의 연결된 인프라는 일반적인 GKE 아키텍처의 기존 한계를 초과하는 기능이 필요한 특정 보안 및 확장성 사용 사례를 위해 설계되었습니다. 설계상 특정 GKE 관측 가능성, 문제 해결 기능, 기능은 연결된 인프라에서 사용할 수 없습니다. 이 인프라는 다음과 같은 전문적인 사용 사례를 충족하도록 일반적인 GKE 클러스터 아키텍처를 수정합니다.
내부자 위협으로부터 모델 및 쿼리 보호: 자체 플랫폼 관리자 및 Google 직원의 독점 모델 가중치 또는 민감한 추론 쿼리 및 응답에 대한 액세스를 방지합니다. AI 애셋은 증명되고 검증 가능한 환경에서만 복호화됩니다.
리전 간 AI 워크로드 실행: 지원되는 노드 확장 한도를 초과하는 규모로 워크로드를 배포합니다. 클러스터 리전 또는 영역 외부의 위치를 비롯하여 사용 가능한 용량이 있는 모든 리전에서 가속기 인프라를 만들고 사용합니다.
작동 방식
GKE 클러스터 아키텍처에 설명된 대로
Standard 모드 클러스터에는 Kubernetes API를 제공하고
클러스터의 모든 노드와 노드 풀을 관리하는 리전 또는 영역 컨트롤 플레인이 있습니다.
클러스터의 모든 노드는 특정 VPC 네트워크를 사용하며 다른 Google Cloud 리소스에서도
사용할 수 있습니다. 모든 GKE 노드는 kubelet 노드 에이전트, 로깅 및 측정항목 에이전트, 기타 Kubernetes 및 GKE 구성요소와 같은 다양한 시스템 구성요소를 실행합니다.
반면 GKE Hypercluster는 Kubernetes API 서버에 Node 객체로 등록되지 않은 연결된 러너 라는 인스턴스를 사용합니다. 이러한 인스턴스에는 다음과 같은 속성이 있습니다.
- Kubernetes 에이전트가 없고 최소한의 GKE 구성요소가 있습니다.
- 사용 사례를 기반으로 하는 전문 OS 이미지입니다. GKE 노드 이미지가 없습니다.
- 인스턴스는 별도의 전용 VPC 네트워크를 사용합니다.
연결된 러너는 러너를 클러스터에 연결하는 클러스터의 제어 노드 에서 관리합니다. 제어 노드는 kubelet 프로세스와 같은 시스템 구성요소를 실행합니다. 단일 제어 노드는 여러 러너와 연결할 수 있습니다. 이러한 연결된 러너는 클러스터 리전의 데이터 센터에서 제공할 수 있는 것보다 더 많은 전력이 필요한 학습 작업과 같이 매우 큰 규모로 워크로드를 실행하도록 설계되었습니다.
인프라 설정 중에 사용 사례에 따라 특정 구성으로 러너를 만든 다음 인스턴스를 클러스터의 전용 제어 노드에 연결합니다. 연결된 러너 인스턴스에는 kubelet이 없고 API 서버 트래픽을 생성하지 않으므로 Kubernetes API는 제어 노드만 관리하면 됩니다. 연결된 러너 인스턴스를 만들 때 다음 방법 중 하나로 인스턴스를 구성할 수 있습니다.
- 기본 구성: 기본적으로 연결된 인스턴스는 Container-Optimized OS 이미지를 실행하는 Compute Engine VM입니다. 플랫폼 관리자 및 SRE와 같은 비상 대응 담당자는 SSH를 사용하여 인스턴스에 액세스할 수 있습니다. 이러한 인스턴스는 인프라에 대한 관리자 액세스 권한을 유지하려는 경우에 적합합니다.
- 봉인된 구성: 일부 AI 워크로드는 독점 모델 가중치 및 암호화된 쿼리와 같은 민감한 정보를 처리합니다. Google 직원 및 자체 관리자를 포함한 모든 액세스로부터 AI 애셋을 보호해야 하는 경우 봉인 모드 로 연결된 러너 인스턴스를 구성할 수 있습니다. 이러한 봉인된 인스턴스에는 다음과 같은 속성이 있습니다.
- 최소 OS 이미지를 사용합니다.
- TPU에는 Titanium Intelligence 엔클레이브를 사용하고 GPU에는 NVIDIA 컨피덴셜 컴퓨팅을 사용합니다.
- 워크로드 수준 및 펌웨어 증명을 실행합니다.
- 컨테이너 이미지 서명을 확인합니다.
- 인스턴스 및 컨테이너에 대한 모든 관리 액세스를 방지합니다.
사용하는 구성과 관계없이 인스턴스에는 GKE 전용 TPU 런타임 매개변수 또는 GKE 로깅 및 모니터링 에이전트와 같이 GKE 노드에 포함된 구성요소와 기능이 많이 포함되어 있지 않습니다.
기본 구성 정보
기본적으로 GKE Hypercluster용으로 만드는 인스턴스는 문제 해결 및 비상 대응을 위해 일반적인 GKE 노드와 유사한 메커니즘을 제공하면서 프로덕션 워크로드를 실행하도록 설계되었습니다. 인스턴스는 Compute Engine 머신 유형에서 실행되고 Container-Optimized OS 이미지를 사용합니다. 중단 또는 비정상 종료와 같은 사고 중에 관리자는 인스턴스에 직접 액세스하여 문제를 해결할 수 있습니다. Kubernetes 노드와 달리 인스턴스는 Kubernetes 및 GKE 기능을 사용 설정하는 시스템 구성요소를 많이 실행하지 않으므로 각 인스턴스에서 할당 가능한 리소스가 더 많습니다.
모든 Google Cloud 리전에서 인스턴스를 만든 다음 이러한 인스턴스를 클러스터의 제어 노드에 연결할 수 있습니다. 제어 노드는 배포된 워크로드의 수명 주기를 관리하는 Kubernetes 컨트롤 플레인의 여러 기능을 실행합니다.
봉인된 구성 정보
기본 사용 사례가 모든 액세스로부터 애셋을 보호하는 것이라면 봉인된 구성을 사용하도록 연결된 러너를 구성할 수 있습니다. 이렇게 하면 다음과 같은 보안 속성이 있는 인스턴스가 생성됩니다.
- 각 인스턴스는 특정 기술을 기반으로 하는 신뢰할 수 있는 실행 환경 (TEE)입니다.
- TPU는 Private AI Compute 플랫폼의 일부인 Titanium Intelligence 엔클레이브를 사용합니다.
- GPU는 NVIDIA 컨피덴셜 컴퓨팅을 사용하여 사용 중인 데이터를 보호합니다.
- 인스턴스는 Container-Optimized OS를 기반으로 하는 최소 OS 이미지를 실행합니다. 이 이미지는 SSH 액세스를 사용 중지하고 컨테이너 셸 액세스를 방지하며 증명 에이전트를 실행합니다.
- 인스턴스에서 실행할 수 있는 워크로드를 정확하게 지정하는 정책을 정의합니다. 예를 들어 워크로드에서 서명된 컨테이너 이미지 다이제스트를 사용하거나 특정 포드 사양을 갖도록 요구할 수 있습니다.
- 증명 에이전트는 펌웨어 및 워크로드 측정항목을 Google Cloud Attestation으로 전송하고 검증 가능한 증명 클레임 결과 토큰을 반환합니다.
결과 인스턴스는 승인된 코드만 실행할 수 있고 민감한 정보가 하드웨어 기반 보안 엔클레이브에서 처리되는 제한된 검증된 환경을 제공합니다. 인스턴스에서 반환되는 증명 정보는 워크로드가 승인된 코드를 실행하고 올바른 인스턴스에 배포되었음을 확인합니다.
이러한 봉인된 인스턴스를 사용하여 다음과 같은 방법으로 암호화된 모델, 쿼리, 응답을 보호할 수 있습니다.
모델 가중치:
- Cloud KMS에서 Cloud HSM 키를 사용하여 모델 가중치를 암호화합니다.
- 암호화된 모델 가중치를 Cloud Storage에 저장합니다.
- 증명된 워크로드에만 버킷에 대한 읽기 액세스 권한을 부여합니다.
- 증명된 워크로드에만 복호화 키 액세스 권한을 부여합니다.
쿼리 및 응답:
- Cloud KMS에서 Cloud HSM 키를 사용하여 쿼리 및 응답을 암호화합니다.
- 증명된 워크로드에만 복호화 액세스 권한을 부여합니다.
- 워크로드 간에 암호화된 데이터를 전송할 때 증명 증거를 요구합니다.
봉인된 구성은 연결된 러너 인스턴스의 선택적 보안 레이어입니다. 기본 구성과 마찬가지로 모든 리전 및 영역에서 봉인된 인스턴스를 만들 수 있습니다. 하지만 봉인된 인스턴스의 보안 속성으로 인해 관리자와 Google 직원은 문제 해결을 위해 호스트 인스턴스에 액세스할 수 없습니다.
자격요건
GKE Hypercluster는 일반적인 GKE 클러스터 아키텍처 및 기능으로 충족할 수 없는 특정 AI/ML 사용 사례를 위해 설계되었습니다. GKE Hypercluster를 사용하는 고객은 비정상적인 보안 및 확장성 요구사항을 가지고 있습니다. GKE Hypercluster는 자격요건을 충족하는 GKE 고객에게만 제공됩니다. 자격요건을 충족하는지 확인하고 액세스를 요청하려면 전담 계정팀에 문의하세요.