이 개요 페이지에서는 Google Distributed Cloud (GDC) 오프라인 Kubernetes 클러스터의 컨테이너 워크로드 운영 모델을 설명합니다. GDC는 Google Kubernetes Engine (GKE)에서 널리 사용되고 지원되는 Kubernetes 네이티브 컨테이너 애플리케이션을 지원하는 관리형 Kubernetes 서비스를 제공합니다.
이 페이지는 조직의 애플리케이션 워크로드를 관리하는 애플리케이션 운영자 그룹의 개발자를 위한 페이지입니다. 자세한 내용은 GDC 오프라인 문서 대상을 참고하세요.
연결이 끊긴 환경을 위한 Kubernetes 애플리케이션
GKE on GDC는 기본적으로 많은 GKE 기능을 GDC 유니버스에 통합하는 관리형 Kubernetes 서비스입니다. 이 서비스를 사용하면 오픈소스 Kubernetes를 직접 설치, 업그레이드, 통합, 실행할 필요가 없습니다. 선언적이고 멱등적인 다른 Kubernetes 제품과 마찬가지로 표준 KRM API를 사용하여 제공된 Kubernetes 배포를 운영하고 유지관리할 수 있습니다. 마찬가지로 GDC 기반 GKE는 GDC 콘솔, gdcloud CLI, Terraform에서 제공됩니다. GDC Kubernetes 클러스터에 대한 자세한 내용은 Kubernetes 클러스터 개요를 참고하세요. 주요 Kubernetes 개념에 대한 자세한 내용은 GKE 문서의 Kubernetes 학습 시작을 참고하세요.
컨테이너 워크로드 상태
GDC의 컨테이너는 다음과 같이 Kubernetes 클러스터에 배포됩니다.
컴퓨팅 요구사항이 진화함에 따라 클러스터 프로비저닝 후에도 컨테이너 워크로드의 요구사항에 따라 GDC Kubernetes 클러스터 노드를 스케일 아웃할 수 있습니다.
Kubernetes는 원하는 컨테이너 애플리케이션 상태를 달성하기 위해 여러 기본 제공 워크로드 리소스를 제공합니다. 자세한 내용은 Kubernetes 워크로드 문서를 참고하세요.
스테이트리스(Stateless) 워크로드
스테이트리스(Stateless) 워크로드는 데이터 또는 애플리케이션 상태를 Kubernetes 클러스터 또는 영구 스토리지에 저장하지 않는 애플리케이션입니다. 대신 데이터 및 애플리케이션 상태가 클라이언트에 유지되므로, 상태 비추적 애플리케이션은 확장성이 더 뛰어납니다. 예를 들어 프런트엔드 애플리케이션은 상태 비추적일 수 있습니다. 여러 복제본을 배포하여 가용성을 높이고, 수요가 낮을 때 규모를 축소하고, 복제본에 고유 ID가 필요하지 않습니다.
Kubernetes는 Deployment
리소스를 사용하여 스테이트리스(Stateless) 애플리케이션을 단일의 비고유 포드로 배포합니다.
배포는 다음과 같은 애플리케이션의 원하는 상태를 관리합니다.
- 애플리케이션을 실행할 포드 수입니다.
- 실행할 컨테이너 이미지의 버전입니다.
- 포드의 라벨입니다.
Deployment
리소스의 Pod
사양을 업데이트하여 원하는 상태를 동적으로 변경할 수 있습니다.
스테이트리스(Stateless) 애플리케이션은 영구 스토리지를 사용하여 데이터와 애플리케이션 상태를 저장하는 스테이트풀(Stateful) 워크로드와 대조됩니다.
스테이트풀 워크로드
스테이트풀(Stateful) 워크로드는 서버, 클라이언트, 기타 애플리케이션에서 사용할 수 있도록 영구 디스크 스토리지에 데이터를 저장하는 애플리케이션입니다. 스테이트풀(Stateful) 애플리케이션의 예시로는 데이터가 저장되고 다른 애플리케이션에 의해 검색되는 데이터베이스 또는 키-값 저장소가 있습니다. 스테이트풀 애플리케이션이 사용할 영구 스토리지를 프로비저닝해야 합니다.
Kubernetes는 StatefulSet
리소스를 사용하여 스테이트풀(Stateful) 애플리케이션을 배포합니다. StatefulSet
리소스의 포드는 상호 호환되지 않습니다. 각 포드는 어디에 예약되든 상관없이 유지되는 고유한 식별자를 갖습니다.
스테이트풀(Stateful) 애플리케이션은 클라이언트 데이터가 세션 간에 서버에 저장되지 않는 스테이트리스(Stateless) 워크로드와 다릅니다.
컨테이너의 영구 스토리지
GDC는 PersistentVolumeClaim
(PVC) 객체를 통해 영구 블록 스토리지를 제공합니다. PVC는 Pod
객체에서 참조하는 스토리지에 대한 요청입니다. 포드는 공유 스토리지 및 네트워크 리소스가 포함된 하나 이상의 컨테이너 그룹입니다. PVC는 포드와 독립적인 수명 주기를 가지므로 단일 포드 이상으로 지속될 수 있습니다.
스테이트풀(Stateful) 워크로드의 영구 스토리지를 동적으로 프로비저닝하여 기본 볼륨을 필요 시 생성할 수 있습니다. GDC에서는 다음 사전 설치된 StorageClass
객체 중 하나를 만들어 동적 프로비저닝을 구성합니다.
standard-rwo
:ReadWriteOnce
(RWO) 블록 스토리지 클래스입니다. 볼륨은 한 번에 하나의 노드에서만 액세스할 수 있습니다. 이 스토리지 클래스는 초당 입력 및 출력 작업 수 (IOPS) 보장 및 GiB당 3IOPS의 제한을 제공합니다.system-performance-rwo
:ReadWriteOnce
성능 블록 스토리지 클래스입니다. 이 스토리지 클래스는 GiB당 30 IOPS의 IOPS 보장 및 한도를 제공하는 RWO 스토리지의 성능이 향상된 버전입니다.
VolumeSnapshot
객체를 만들어 완전히 새로운 볼륨을 만들지 않고도 특정 시점에 컨테이너 애플리케이션의 스토리지 볼륨을 복사할 수도 있습니다. 예를 들어 데이터베이스 관리자는 수정 또는 삭제 수정사항을 실행하기 전에 볼륨 스냅샷을 만들어 데이터베이스를 백업할 수 있습니다.