클러스터 수명 주기 가이드에서 설명한 것처럼, GKE 사용자는 일반적으로 클러스터 관리를 위해 Google Cloud 도구를 사용하고, 애플리케이션 배포와 같은 클러스터 내부 태스크에는 kubectl
과 같은 Kubernetes 도구를 사용합니다. 따라서 이미 다른 Kubernetes 환경에서 워크로드를 배포해본 경험이 있다면, GKE에서도 대부분 동일한 워크플로에 따라 워크로드를 배포할 수 있습니다. 아직 Kubernetes에서 워크로드를 배포해본 적이 없다면, Kubernetes 학습 시작하기 섹션의 배포 및 기타 리소스를 참조하세요.
하지만 GKE는 워크로드 배포 및 관리를 위한 기본 기능 외에도 다양한 추가 기능을 제공합니다. 여기에는 모니터링 가능성 도구, 스테이트풀(Stateful) 애플리케이션용 완전 관리형 데이터베이스 옵션, AI/ML 워크로드와 같은 특수 워크로드 유형을 위한 전용 하드웨어 옵션이 포함됩니다.
이 페이지서는 GKE 클러스터에 워크로드를 배포하려는 개발자 및 관리자를 위한 간략한 개요를 제공하며, 자세한 내용을 확인할 수 있는 문서 링크도 함께 포함되어 있습니다. 보다 구체적인 가이드 및 튜토리얼은 GKE 핵심 문서의 배포... 섹션에서 확인할 수 있습니다.
이 페이지를 읽기 전에 아래 내용을 숙지해야 합니다.
필요한 역할
프로젝트 소유자가 아닌 경우 워크로드를 배포하려면 최소한 다음 Identity and Access Management(IAM) 역할이 필요합니다.
Kubernetes Engine 클러스터 뷰어(
roles/container.clusterViewer
): 이 역할은container.clusters.get
권한을 제공하며, 이는 Google Cloud 프로젝트의 클러스터에 인증하기 위해 필요합니다. 이 역할만으로는 클러스터 내부에서 어떤 작업도 수행할 수 없습니다. 클러스터 관리자에게 요청하면, IAM 또는 Kubernetes RBAC를 통해 클러스터에서 다른 작업을 수행할 수 있는 권한을 추가로 부여받을 수 있습니다.이 역할에 포함된 모든 권한에 대한 자세한 내용이나 읽기/쓰기 권한이 있는 역할을 부여하려면 IAM 문서의 Kubernetes Engine 역할을 참조하세요.
GKE에서 액세스 제어가 작동하는 방식은 액세스 제어를 참조하세요.
스테이트리스(Stateless) 애플리케이션
스테이트리스(Stateless) 애플리케이션은 클러스터 또는 영구 스토리지에 데이터 또는 애플리케이션 상태를 저장하지 않는 애플리케이션입니다. 스테이트리스(Stateless) 애플리케이션은 Google Cloud 콘솔의 워크로드 메뉴에서 직접 배포할 수 있으며, Kubernetes API를 통해서도 배포할 수 있습니다. 스테이트리스(Stateless) Linux 애플리케이션을 GKE에 배포하는 방법은 스테이트리스(Stateless) Linux 애플리케이션 배포를 참조하세요. 원하는 경우 스테이트리스(Stateless) Windows Server 애플리케이션을 배포하는 방법도 학습할 수 있습니다.
스테이트풀(Stateful) 애플리케이션 및 스토리지
포드 수명이 끝난 이후에도 데이터를 저장해야 하는 애플리케이션을 스테이트풀(Stateful) 애플리케이션이라고 합니다. 이러한 스토리지는 사용자 또는 관리자가 Kubernetes의 PersistentVolume 객체를 사용해 프로비저닝할 수 있습니다. GKE에서는 PersistentVolume 스토리지가 Compute Engine 디스크를 기반으로 제공됩니다. GKE에서 간단한 스테이트풀(Stateful) 애플리케이션을 배포하는 방법은 스테이트풀(Stateful) 애플리케이션 배포를 참조하세요.
스테이트풀(Stateful) 애플리케이션의 데이터를 클러스터 수명에 종속된 스토리지가 아닌 데이터베이스에 영구적으로 저장하려는 경우, GKE에서는 다음과 같은 옵션을 제공합니다.
- 완전 관리형 데이터베이스: Cloud SQL 또는 Spanner와 같은 관리형 데이터베이스는 감소된 운영 오버헤드를 제공하며, Google Cloud 인프라에 최적화되었습니다. 관리형 데이터베이스는 Kubernetes에 직접 배포하는 데이터베이스보다 유지보수 및 운영 노력이 적게 필요합니다.
- Kubernetes 애플리케이션: GKE 클러스터에 MySQL 또는 PostgreSQL 같은 데이터베이스 인스턴스를 배포하고 실행할 수 있습니다.
GKE에서 사용할 수 있는 데이터 옵션에 대한 자세한 내용은 GKE의 데이터 관리 및 GKE에서 데이터베이스 배포 계획을 참조하세요.
AI/ML 워크로드
GKE는 AI/ML 워크로드 배포를 위한 강력한 지원 기능을 제공합니다. 여기에는 모델 학습 및 서빙을 위한 전문 하드웨어 지원은 물론, 분산 컴퓨팅 및 데이터 처리 프레임워크와의 유연한 통합 기능도 포함됩니다. 다음 가이드를 통해 자세한 내용을 학습할 수 있습니다.
- GKE의 TPU 정보에서는 GKE에서 AI/ML 워크로드에 Cloud TPU 가속기를 사용하는 방법을 소개합니다. GKE는 TPU VM 생성, 구성, 삭제를 포함해 TPU 노드 및 노드 풀의 전체 수명 주기 관리를 완전히 지원합니다. Standard 및 Autopilot 클러스터 모두에서 TPU 워크로드를 배포할 수 있습니다.
- GKE의 GPU 정보에서는 GKE 워크로드에서 GPU 하드웨어를 요청하고 사용하는 방법을 설명합니다.
기타 특수 요구사항이 있는 워크로드
GKE는 특정 노드 아키텍처가 필요한 애플리케이션이나, 포드를 동일한 노드 또는 별개의 노드에서 실행해야 하는 워크로드처럼 특수한 요구사항이 있는 워크로드를 배포할 수 있도록 다양한 기능과 가이드를 제공합니다. 이러한 워크로드 배포 방법은 다음 가이드에서 자세히 알아볼 수 있습니다.
- Autopilot의 컴퓨팅 클래스에서는 Autopilot 클러스터에 애플리케이션을 배포할 때 포드 스케줄링을 위해 특정 컴퓨팅 아키텍처를 선택하는 방법을 설명합니다. Standard 클러스터의 경우 클러스터를 만들 때 노드에 사용하려는 머신 계열을 직접 지정할 수 있습니다.
- 커스텀 컴퓨팅 클래스 정보에서는 Autopilot 및 Standard 클러스터 모두에서 애플리케이션을 위한 하드웨어 옵션을 보다 유연하게 지정할 수 있도록 커스텀 컴퓨팅 클래스를 만드는 방법을 설명합니다.
- GKE에서 워크로드 분리 구성에서는 애플리케이션의 포드가 동일한 머신에서 실행될지, 다른 기본 머신에서 실행될지를 지정하는 방법을 설명합니다.
- GKE Sandbox에서는 신뢰할 수 없거나 출처가 불분명한 워크로드를 배포할 때, 샌드박스 포드를 사용하여 호스트 커널을 보호하는 방법을 설명합니다.
워크로드 모니터링
GKE는 워크로드 상태 및 측정항목을 한눈에 파악할 수 있는 Google Cloud 콘솔의 개요 페이지는 물론, 보다 심층적인 측정항목, 로그, 알림 기능을 포함하여 워크로드 및 그 상태를 모니터링할 수 있는 다양한 기능을 제공합니다.
- Google Cloud 콘솔에서 GKE 페이지를 사용하는 방법은 Google Cloud 콘솔의 GKE를 참조하세요.
- App Hub를 사용해 워크로드 및 서비스를 확인하는 방법은 App Hub를 참조하세요.
- GKE와 Google Cloud 모니터링 가능성에 대해서는 GKE의 모니터링 가능성을 참조하세요.
워크로드 배포 관리
사용자가 직접 또는 관리자와 함께 워크로드 배포를 위한 지속적 통합 및 배포(CI/CD) 파이프라인을 설정하려는 경우, GKE 전용 CI/CD 권장사항과 가이드라인은 GKE에 대한 지속적 통합 및 배포 권장사항에서 확인할 수 있습니다. 또한 특정 도구 및 제품을 사용해 CI/CD 파이프라인을 설정하는 방법에 대한 튜토리얼도 함께 제공됩니다.
다음 단계
GKE 작업에 유용한 도구에 대해 자세히 알아보세요.
Cloud Code를 사용하여 IDE에서 배포를 간소화하는 방법은 IDE에서 배포 및 업데이트 튜토리얼을 참조하세요.