Backup for GKE


Backup for GKE는 GKE 클러스터에서 워크로드를 백업하고 복원할 수 있는 서비스입니다. 여기에는 두 가지 구성요소가 있습니다.

  • 서비스의 제어 영역 역할을 하는 Google Cloud API
  • 백업 및 복원 작업을 수행하려는 각 클러스터에서 사용 설정되어야 하는 GKE 부가기능(Backup for GKE 에이전트)

워크로드 백업은 재해 복구, CI/CD 파이프라인, 클론 워크로드, 업그레이드 시나리오에서 유용할 수 있습니다. 워크로드 보호를 통해 비즈니스에 중요한 복구 지점 목표를 달성할 수 있습니다.

소개

Backup for GKE 서비스는 사용 설정되면 GKE UI, Google Cloud CLI, REST API와 통합되어 개발과 작업에 일관적인 워크플로가 제공됩니다. 백업에는 두 가지 데이터 형태가 캡처됩니다.

  • 구성 백업: 백업을 진행 중인 클러스터의 API 서버에서 추출한 Kubernetes 리소스 매니페스트이며, 클러스터 상태를 캡처합니다.
  • 볼륨 백업: 구성 백업에 있는 PersistentVolumeClaim 리소스에 해당하는 볼륨 백업 집합입니다.

백업 또는 복원하려는 워크로드를 선택하거나 모든 워크로드를 백업 또는 복원할 수 있습니다. 한 클러스터에서 워크로드를 백업하고 이를 다른 클러스터로 복원할 수 있습니다. 자동으로 실행되도록 백업을 예약해서, 이슈 발생 시 워크로드 복구를 위해 빠르게 대응할 수 있습니다.

워크로드 복구에는 대상 클러스터에서 Kubernetes 리소스를 다시 만드는 과정이 포함되어 있습니다. 리소스가 생성된 후에는 클러스터 조정 프로세스에 따라 워크로드 기능 복원이 수행됩니다. 예를 들어 포드가 노드로 예약되었으면 해당 노드에서 포드가 시작됩니다. 복원 중에는 일치하는 리소스 집합을 확인하고 해당 리소스에서 특정 속성의 현재 값을 새 값으로 바꾸는 변환 규칙을 선택적으로 적용할 수 있습니다.

다음과 같이 여러 백업 및 복원 시나리오를 사용 설정하고 지원할 수 있도록 대체와 함께 선택적인 백업 및 복원 조합이 설계되었습니다.

  • 클러스터의 모든 워크로드를 백업하고 재해 복구를 위해 이를 개별 클러스터에 복원합니다.
  • 모든 워크로드를 백업하지만 소스 클러스터에서 단일 워크로드를 선택적으로 롤백합니다.
  • 한 네임스페이스에서 리소스를 백업하고 이를 다른 네임스페이스에 클론합니다.
  • 한 클러스터에서 다른 클러스터로 워크로드를 마이그레이션 또는 클론합니다.
  • 워크로드의 스토리지 매개변수를 변경합니다. 예를 들어 영역 영구 디스크에서 리전 영구 디스크로 워크로드를 이동합니다.

워크로드를 백업 또는 복원하려면 먼저 Backup for GKE 서비스를 사용 설정하여 대상 클러스터를 만들어야 합니다.

아키텍처

Backup for GKE는 두 가지 기본 구성요소로 구성됩니다.

  • 서비스는 Google Cloud에서 실행되고 리소스 기반 REST API를 지원합니다. 이 서비스는 Backup for GKE의 제어 영역으로 작동합니다. 서비스에는 이 API와 상호 작용하는 Google Cloud Console UI 요소가 포함됩니다.
  • 에이전트는 백업 또는 복원이 수행되는 모든 클러스터에서 실행됩니다. 에이전트는 Backup for GKE API와 상호 작용을 통해 이러한 클러스터에서 백업 및 복원 작업을 실행합니다.

다음 다이어그램은 여러 Backup for GKE 구성요소 사이의 관계를 보여줍니다.

Backup for GKE 아키텍처

서비스 개요

Backup for GKE 서비스는 클라이언트가 상호작용할 API 엔드포인트를 제공합니다. Backup for GKE API는 다른 대부분의 Google Cloud API와 마찬가지로 리소스 계층 구조에서 애플리케이션 특정 cloud 리소스에 따라 작동합니다. Backup for GKE는 이러한 애플리케이션 특정 리소스의 데이터베이스를 관리합니다. 서비스 API 메서드는 주로 이러한 리소스에 대한 만들기, 읽기, 업데이트, 삭제 작업에 해당합니다.

클라우드 리소스 모델에는 두 가지 기본 활성 리소스 유형이 있습니다.

  • Backup: 특정 시점에서 GKE 클러스터의 특정 부분의 백업을 나타냅니다. Backup 리소스를 만들면 결과적으로 대상 Kubernetes 리소스의 사본을 저장하고 대상 영구 디스크 볼륨의 스냅샷을 만드는 백업 프로세스가 시작됩니다. Backup를 삭제하면 저장된 아티팩트가 삭제됩니다.
  • Restore: 특정 Backup의 선택된 부분을 GKE 클러스터에 복원하는 작업을 나타냅니다. Restore 리소스를 만들면 복원 프로세스가 시작됩니다. Restore를 삭제할 때는 부작용이 없고, 복원 레코드가 데이터베이스에서 삭제됩니다.

Backup for GKE에는 또한 두 가지 구성 및 제어 리소스 유형이 포함됩니다.

  • BackupPlan: 백업 체인을 나타내는 Backup 리소스의 상위 리소스입니다. 이 리소스에는 소스 클러스터, 백업하도록 선택된 워크로드, 이 계획으로 생성된 Backup 아티팩트가 저장되는 리전을 포함한 백업 구성이 포함됩니다.
  • RestorePlan: 재사용 가능한 복원 템플릿을 제공합니다. 이 리소스에는 백업을 복원하려는 대상 클러스터, 소스 백업 계획, 복원 범위, 충돌 처리, 변환 규칙을 포함한 복원 구성이 포함되어 있습니다.

에이전트 개요

Backup for GKE 에이전트는 Backup for GKE 서비스로 백업하도록 구성하는 각 GKE 클러스터에서 배포되고 실행됩니다. 이 에이전트는 백업 및 복원 작업을 실행합니다. 예를 들면 다음과 같습니다.

  • 백업:

    • 백업 프로세스를 조정합니다.
    • Kubernetes API 서버에서 리소스를 가져오고, 이를 아카이브로 직렬화하고, 아카이브를 저장합니다.
    • PersistentVolumeClaims와 연관된 기본 볼륨의 백업을 만듭니다.
  • 복원:

    • 복원 프로세스를 조정합니다.
    • 스토리지에서 Kubernetes 리소스 아카이브를 가져오고, 선택한 리소스를 추출하고, 이러한 리소스에 적절한 수정을 적용하고, 대상 클러스터에서 리소스를 만듭니다.
    • 볼륨을 만들고 대상 클러스터의 Kubernetes 구성에 기록합니다.

관리자는 에이전트와 상호작용하지 않습니다. 에이전트는 백업 및 복원 클라우드 리소스 만들기에 대한 응답으로 Backup for GKE 서비스에서 클러스터에 자동으로 생성된 커스텀 Kubernetes 리소스(BackupJobRestoreJob)에 의해 구동됩니다. 하지만 관리자는 클러스터에 선택적인 ProtectedApplication Kubernetes 리소스를 만들어 백업 조정에 영향을 줄 수 있습니다. 이러한 ProtectedApplication 리소스는 Backup for GKE에 고유하며 백업 및 복원 범주를 정의하기 위해 보다 세부적인 옵션을 제공합니다.

에이전트의 미리보기 및 정식 버전 간의 차이에 대한 자세한 내용은 미리보기 에이전트 지원 중단을 참조하세요.

백업되지 않는 대상

Backup for GKE를 사용하면 Kubernetes 리소스 및 기본 영구 볼륨만 백업할 수 있습니다. Backup for GKE는 다음 항목을 백업하지 않습니다.

  • 노드 구성, 노드 풀, 초기 클러스터 크기, 사용 설정된 기능과 같은 GKE 클러스터 구성 정보
  • 백업에서 참조되는 컨테이너 이미지. 워크로드를 기술하고 컨테이너 이미지를 참조하는 Kubernetes 리소스만 백업됩니다. 백업에서 워크로드 매니페스트에 참조되는 이미지가 이미지 저장소에서 삭제되면 해당 구성을 나중에 복원할 때 워크로드가 성공적으로 복원되지 않습니다.
  • Cloud SQL 또는 외부 부하 분산기와 같이 클러스터 외부의 서비스 상태 또는 구성 정보

다음 단계