GDC의 컨테이너 워크로드

이 개요 페이지에서는 Google Distributed Cloud (GDC) 에어 갭 Kubernetes 클러스터의 컨테이너 워크로드 운영 모델을 설명합니다. GDC는 Google Kubernetes Engine (GKE)에서 널리 사용되고 지원되는 Kubernetes 기본 컨테이너 애플리케이션을 지원하는 관리형 Kubernetes 서비스를 제공합니다.

이 페이지는 조직의 애플리케이션 워크로드를 관리하는 애플리케이션 운영자 그룹 내 개발자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 잠재고객을 참고하세요.

연결 해제된 환경을 위한 Kubernetes 애플리케이션

GDC의 GKE 는 기본적으로 많은 GKE 기능을 GDC 유니버스에 통합하는 관리형 Kubernetes 서비스입니다. 이 서비스를 사용하면 오픈소스 Kubernetes를 직접 설치, 업그레이드, 통합, 실행할 필요가 없습니다. 선언적이고 멱등적인 다른 Kubernetes 제품과 마찬가지로 표준 KRM API를 사용하여 제공된 Kubernetes 배포를 운영하고 유지보수할 수 있습니다. 마찬가지로 GDC의 GKE는 GDC 콘솔, gdcloud CLI, Terraform에서 제공됩니다. GDC Kubernetes 클러스터에 대한 자세한 내용은 Kubernetes 클러스터 개요를 참고하세요. 주요 Kubernetes 개념에 대한 자세한 내용은 Kubernetes 학습 시작에 대한 GKE 문서를 참고하세요.

컨테이너 워크로드 상태

GDC의 컨테이너는 다음과 같이 Kubernetes 클러스터에 배포됩니다.

컴퓨팅 요구사항이 진화함에 따라 클러스터 프로비저닝 후에도 컨테이너 워크로드의 요구사항에 따라 GDC Kubernetes 클러스터 노드를 수평 확장할 수 있습니다.

Kubernetes는 원하는 컨테이너 애플리케이션 상태를 달성하기 위해 여러 기본 제공 워크로드 리소스를 제공합니다. 자세한 내용은 Kubernetes 워크로드 문서를 참고하세요.

스테이트리스(Stateless) 워크로드

스테이트리스(Stateless) 워크로드 는 Kubernetes 클러스터 또는 영구 스토리지에 데이터 또는 애플리케이션 상태를 저장하지 않는 애플리케이션입니다. 대신 데이터 및 애플리케이션 상태가 클라이언트에 유지되므로, 스테이트리스(Stateless) 애플리케이션은 확장성이 더 뛰어납니다. 예를 들어 프런트엔드 애플리케이션은 스테이트리스(Stateless)일 수 있습니다. 여러 복제본을 배포하여 가용성을 높이고, 수요가 낮을 때 규모를 축소하고, 복제본에 고유 ID가 필요하지 않습니다.

Kubernetes는 Deployment 리소스를 사용하여 스테이트리스(Stateless) 애플리케이션을 균일한 고유하지 않은 포드로 배포합니다. 배포는 다음과 같은 애플리케이션의 원하는 상태 를 관리합니다.

  • 애플리케이션을 실행할 포드 수
  • 실행할 컨테이너 이미지 버전
  • 포드의 라벨

Deployment 리소스의 Pod 사양을 업데이트하여 원하는 상태를 동적으로 변경할 수 있습니다.

스테이트리스(Stateless) 애플리케이션은 영구 스토리지를 사용하여 데이터와 애플리케이션 상태를 저장하는 스테이트풀(Stateful) 워크로드와 대조됩니다.

스테이트풀(Stateful) 워크로드

스테이트풀(Stateful) 워크로드 는 서버, 클라이언트, 기타 애플리케이션에서 사용할 수 있도록 영구 디스크 스토리지에 데이터를 저장하는 애플리케이션입니다. 스테이트풀(Stateful) 애플리케이션의 예시로는 데이터가 저장되고 다른 애플리케이션에 의해 검색되는 데이터베이스 또는 키-값 저장소가 있습니다. 스테이트풀(Stateful) 애플리케이션에서 사용할 영구 스토리지를 프로비저닝해야 합니다.

Kubernetes는 StatefulSet 리소스를 사용하여 스테이트풀(Stateful) 애플리케이션을 배포합니다. StatefulSet 리소스의 포드는 상호 호환되지 않습니다. 각 포드는 어디에 예약되든 상관없이 유지되는 고유한 식별자를 갖습니다.

스테이트풀(Stateful) 애플리케이션은 클라이언트 데이터가 세션 간에 서버에 저장되지 않는스테이트리스(Stateless) 워크로드와 다릅니다.

컨테이너용 영구 스토리지

GDC는 PersistentVolumeClaim (PVC) 객체를 통해 영구 블록 스토리지를 제공합니다. PVC는 Pod 객체에서 참조하는 스토리지 요청입니다. 포드는 스토리지와 네트워크 리소스를 공유하는 하나 이상의 컨테이너 그룹입니다. PVC는 포드와 독립적인 수명 주기를 가지므로 단일 포드를 넘어 지속될 수 있습니다.

스테이트풀(Stateful) 워크로드의 영구 스토리지를 동적으로 프로비저닝하여 기본 볼륨이 필요 시 생성되도록 할 수 있습니다. GDC에서는 사전 설치된 StorageClass 객체 standard-rwo를 만들어 동적 프로비저닝을 구성합니다. standard-rwo 객체는 볼륨이 한 번에 하나의 노드에만 액세스할 수 있도록 하는 ReadWriteOnce (RWO) 블록 스토리지 클래스입니다.

완전히 새로운 볼륨을 만들지 않고도 특정 시점에 컨테이너 애플리케이션의 스토리지 볼륨을 복사하는 VolumeSnapshot 객체를 만들 수도 있습니다. 예를 들어 데이터베이스 관리자는 수정 또는 삭제 변경사항을 수행하기 전에 볼륨 스냅샷을 만들어 데이터베이스를 백업할 수 있습니다.

다음 단계