백업 집합 계획

이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭에서 클러스터 워크로드의 백업 계획을 만들고 관리하는 방법을 설명합니다.

백업 계획은 백업 시퀀스의 구성, 위치, 관리 기능을 제공합니다. 백업 계획에는 소스 클러스터, 백업할 워크로드 선택을 포함한 백업 구성이 포함됩니다. 모든 클러스터에 하나 이상의 백업 계획을 제공하는 것이 좋습니다.

각 클러스터에 백업 계획을 하나 이상 만들 수 있습니다. 다음과 같은 이유로 클러스터의 백업을 파티션으로 나눌 수 있습니다.

  • 하루에 한 번 대규모로 백업을 수행하는 대신 하루 중 여러 번 소규모로 백업을 수행합니다.
  • 클러스터의 일부를 다른 것보다 더 자주 백업합니다(예: 일부 네임스페이스의 경우 매일 백업, 다른 것은 시간별 백업).

단일 클러스터 또는 가상 머신 (VM)은 하나 이상의 백업 계획에 속할 수 있습니다. 백업 계획은 두 개 이상의 클러스터에 걸쳐 있을 수 없지만, 단일 백업 계획은 동일한 클러스터에 있는 경우 여러 VM을 캡처할 수 있습니다. 모든 백업 및 복원 리소스를 프로젝트 이름과 연결해야 합니다.

시작하기 전에

백업 계획을 만들려면 다음이 필요합니다.

  • 필요한 ID 및 액세스 역할:
    • 사용자 클러스터 백업 관리자: 사용자 클러스터의 백업 및 복원 계획과 같은 백업 리소스를 관리합니다. 조직 IAM 관리자에게 사용자 클러스터 백업 관리자 (user-cluster-backup-admin) 역할을 부여해 달라고 요청하세요. 자세한 내용은 역할 정의를 참고하세요.
  • 애플리케이션 운영자인 경우 사용자 클러스터 백업 관리자 권한이 있는 관리자에게 백업 계획을 만들어 달라고 요청하세요.
  • 사용자 클러스터를 백업할 때는 백업 계획을 만드는 데 사용한 프로젝트를 해당 클러스터에 연결해야 합니다.

백업 계획 만들기

해당 일정에 따라 백업이 자동으로 생성되도록 백업 계획의 크론 일정을 정의하는 것이 좋습니다. 워크로드를 수동으로 백업할 수도 있습니다. 자세한 내용은 수동 백업 만들기를 참고하세요.

GDC 콘솔 또는 API를 사용하여 백업 계획을 만듭니다.

콘솔

  1. GDC 콘솔에 로그인합니다.
  2. 탐색 메뉴에서 Backup for Clusters를 클릭합니다.
  3. 백업 계획 만들기를 클릭합니다.
  4. 계획 세부정보 섹션에서 다음 단계를 완료하고 계속을 클릭합니다.
    1. 클러스터 목록에서 백업할 클러스터를 선택합니다.
    2. 프로젝트 목록에서 프로젝트를 선택합니다.
    3. 백업 계획 이름 필드에 선택한 백업 계획 이름을 입력합니다.
    4. (선택사항) 백업 계획 설명에 백업 계획에 대한 설명을 입력합니다.
    5. 백업 저장소 필드에서 백업 저장소를 선택합니다. 백업 저장소는 객체 스토리지 구현의 집합입니다.
    6. 다음을 클릭합니다.
  5. 범위 및 암호화 섹션에서 다음 단계를 완료하고 계속을 클릭합니다.

    1. 백업 계획에 대해 다음 범위 중 하나를 선택합니다.

      1. 전체 클러스터를 클릭하여 백업의 모든 네임스페이스 리소스를 백업합니다.
      2. 클러스터 내에서 선택된 네임스페이스를 클릭하여 백업할 클러스터의 네임스페이스를 선택합니다.
        1. 클러스터 네임스페이스 수정을 클릭한 다음 클러스터 네임스페이스 추가를 클릭하여 네임스페이스를 입력합니다.
      3. 이 클러스터 내에서 선택된 보호되는 애플리케이션을 클릭하고 네임스페이스와 애플리케이션 이름을 지정하여 리소스를 추가합니다.
        1. 보호된 애플리케이션 수정을 클릭한 다음 보호된 애플리케이션 추가를 클릭하여 네임스페이스보호된 애플리케이션을 입력합니다.
    2. 보안 비밀 포함을 클릭하여 Kubernetes Secret 리소스를 포함합니다.

    3. 백업에 볼륨 데이터를 포함하려면 영구 볼륨 데이터 포함을 클릭합니다. 백업 중에 빈 볼륨을 만들려면 이 체크박스를 선택 취소합니다.

  6. 일정 및 보관 섹션에서 다음 단계를 완료하고 계속을 클릭합니다.

    1. 일정을 정의하려면 CRON 문자열 필드에 표준 cron 문법을 사용하여 표현식을 입력합니다. 예를 들어 10 3 * * * 표현식은 매일 오전 3시 10분에 백업을 만듭니다. 모든 시간은 UTC로 해석됩니다. 예약된 백업 간의 최소 간격은 10분입니다.
    2. 다음 기간이 지나면 백업 삭제 필드에서 백업을 보관할 일수를 설정합니다. 일수가 지나면 백업이 자동으로 삭제됩니다.
    3. 백업을 삭제할 수 없는 기간의 일수를 설정합니다.
    4. 보관 정책을 잠그려면 자물쇠 아이콘을 클릭하여 잠금을 끄기에서 켜기로 전환합니다.
  7. 백업 계획 세부정보를 검토하고 계획 만들기를 클릭합니다.

API

클러스터에서 ClusterBackupPlan 커스텀 리소스를 만들어 백업을 예약합니다. 백업 계획은 backupSchedule에 따라 주기적으로 백업을 예약합니다. ClusterBackupPlan 리소스는 네임스페이스 리소스입니다. ClusterBackupPlan의 예는 다음과 같습니다.

apiVersion: backup.gdc.goog/v1
kind: ClusterBackupPlan
metadata:
  name: CLUSTER_BACKUP_PLAN
  namespace: PROJECT_NAME
spec:
  targetCluster:
    targetClusterType: UserCluster
    targetClusterName:
      kind: "Cluster"
      name: CLUSTER_NAME
  backupSchedule:
    cronSchedule: CRON_SCHEDULE
    paused: BACKUP_SCHEDULE_STATUS
  clusterBackupConfig:
    backupScope:
      selectedNamespaces:
        namespaces: [NAME_SPACE]
    clusterBackupRepositoryName: CLUSTER_BACKUP_REPOSITORY
    includeVolumeData: VOLUME_DATA_INCLUDED
    volumeStrategy: VOLUME_STRATEGY
    includeSecrets: SECRETS_INCLUDED
  retentionPolicy:
    backupDeleteLockDays: BACKUP_DELETE_LOCK_DAYS
    backupRetainDays: BACKUP_RETAIN_DAYS
  description: BACKUP_PLAN_DESCRIPTION

다음을 바꿉니다.

  • CLUSTER_BACKUP_PLAN: 클러스터 백업 계획 이름입니다.
  • PROJECT_NAME: GDC 프로젝트의 이름입니다.
  • CLUSTER_NAME: 백업할 클러스터의 이름입니다. 둘러싸는 targetCluster 필드에는 다음 구성요소가 있습니다.
    • targetClusterType: 백업할 클러스터의 유형입니다(예: UserCluster 또는 ManagementAPI). 이 예시에서는 UserCluster을 사용합니다.
    • targetClusterName: CLUSTER_NAME에 의해 설정되는 name를 포함합니다.
  • CRON_SCHEDULE: 백업을 예약할 시기를 나타내는 crontab 일정입니다(예: "*/30 * * * *"). 예약된 백업 간의 최소 간격은 10분입니다.
  • BACKUP_SCHEDULE_STATUS: true이면 정기 백업이 예약되지 않습니다.
  • NAME_SPACE: 백업에 포함할 네임스페이스 목록입니다. 동봉된 clusterBackupConfig 필드에는 백업 구성 세부정보가 포함됩니다.
    • backupScope: 백업된 리소스를 나타냅니다. 다음 예시에서는 selectedNamespaces을 사용합니다. 가능한 값은 다음과 같습니다.
      • allNamespaces: 모든 네임스페이스의 모든 리소스를 캡처합니다.
      • selectedNamespaces: 지정된 네임스페이스 목록의 리소스를 캡처합니다.
      • selectedApplication: protectedApplications로 정의된 리소스를 캡처합니다.
    • namespaces: backupScopeselectedNamespaces인 경우 적용됩니다.
  • CLUSTER_BACKUP_REPOSITORY: clusterBackupConfigclusterBackupRepositoryName 값입니다. 백업을 저장하는 타겟 저장소이며 ReadWrite로 가져와야 합니다.
  • VOLUME_DATA_INCLUDED: 볼륨 데이터를 백업할지 여부를 지정합니다. 이 값은 기본적으로 false입니다. 백업에 볼륨 데이터를 포함하려면 이 값을 true로 설정합니다.
  • VOLUME_STRATEGY: 실행할 볼륨 백업 유형입니다. 가능한 값은 다음과 같습니다.
    • ProvisionerSpecific: 기본 스토리지 프로비저너의 백업 및 복원 기능을 활용합니다. includeVolumeDatatrue인 경우 이 옵션을 사용합니다.
    • LocalSnapshotOnly: 로컬 스토리지 시스템 자체에만 볼륨의 특정 시점 사본을 만듭니다.
    • Portable: 스토리지에 구애받지 않는 볼륨 데이터 백업 방법을 제공합니다.
  • SECRETS_INCLUDED: 비밀을 백업할지 여부를 지정합니다. 이 값은 기본적으로 false입니다. 백업에 Kubernetes Secret 리소스를 포함하려면 이 값을 true로 설정합니다.
  • BACKUP_DELETE_LOCK_DAYS: 백업 생성 후 지정된 일수 동안 백업이 삭제되지 않도록 합니다(예: 10 days).
  • BACKUP_RETAIN_DAYS: 백업을 보관할 총 일수를 정의합니다. 이 기간이 지나면 백업이 자동으로 삭제됩니다. 이 값을 높게 설정하면 스토리지가 소진될 수 있고, 낮게 설정하면 데이터 손실 위험이 증가할 수 있습니다. 지정하지 않으면 이 값은 기본적으로 35로 설정됩니다. 보관 정책은 저장 위치의 보관 정책을 재정의하지 않으며 90일을 초과할 수도 없습니다.
  • BACKUP_PLAN_DESCRIPTION: 백업 계획에 대한 설명입니다.

백업 계획이 생성되면 백업 일정에 따라 지정된 백업 구성으로 백업이 자동으로 생성됩니다.

백업 계획 보기

GDC 콘솔 또는 API를 사용하여 백업 계획을 확인합니다.

콘솔

  1. GDC 콘솔에 로그인합니다.
  2. 탐색 메뉴에서 Backup for Clusters를 클릭합니다.
  3. 프로젝트 선택을 클릭하고 역할에 따라 조직 또는 프로젝트를 선택합니다.
    • 사용자 클러스터 백업 관리자: 조직을 선택하여 조직의 모든 백업 계획을 확인하거나 프로젝트를 선택하여 프로젝트의 모든 백업 계획을 확인합니다.
    • 백업 생성자: 프로젝트를 선택하여 프로젝트의 모든 백업 계획을 확인합니다.
  4. 백업 계획 탭을 클릭합니다.
  5. 목록에서 백업 계획을 클릭하여 세부정보를 확인합니다. 사용자 클러스터 백업 관리자 권한이 있는 사용자는 조직의 모든 백업 계획을 볼 수 있습니다. 백업 생성자 역할이 있는 사용자는 선택한 프로젝트의 모든 백업 계획을 볼 수 있습니다.

API

백업 계획을 보려면 kubectl get 명령어를 사용합니다.

kubectl get clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME -o yaml

다음을 바꿉니다.

  • CLUSTER_BACKUP_PLAN: 보려는 백업 계획의 이름입니다.
  • PROJECT_NAME: GDC 프로젝트의 이름입니다.

백업 계획 수정

GDC 콘솔 또는 API를 사용하여 백업 계획을 수정합니다.

콘솔

  1. GDC 콘솔에 로그인합니다.
  2. 탐색 메뉴에서 Backup for Clusters를 클릭합니다.
  3. 프로젝트 선택을 클릭하고 역할에 따라 조직 또는 프로젝트를 선택합니다.
    • 사용자 클러스터 백업 관리자: 조직을 선택하여 조직의 모든 백업 계획을 확인하거나 프로젝트를 선택하여 프로젝트의 모든 백업 계획을 확인합니다.
    • 백업 생성자: 프로젝트를 선택하여 프로젝트의 모든 백업 계획을 확인합니다.
  4. 백업 계획 탭을 클릭합니다.
  5. 수정할 백업 계획의 이름을 클릭합니다.
  6. 요금제 구성 탭을 클릭하여 수정할 수 있는 필드를 확인합니다.
  7. 일정 및 보관 수정 아이콘을 클릭하여 해당 리소스를 수정합니다.

    1. 일정을 업데이트하려면 CRON 문자열 필드에 표준 cron 문법을 사용하여 표현식을 입력합니다. 예를 들어 10 3 * * * 표현식은 매일 오전 3시 10분에 백업을 만듭니다. 모든 시간은 UTC로 해석됩니다. 예약된 백업 간의 최소 간격은 10분입니다.
    2. 다음 기간이 지나면 백업 삭제 필드에서 백업을 보관할 일수를 설정합니다. 일수가 지나면 백업이 자동으로 삭제됩니다.
    3. 삭제 방지 기간 필드에서 백업을 삭제할 수 없는 기간의 일수를 설정합니다.

    4. 보관 정책을 잠그려면 자물쇠 아이콘을 클릭하여 끄기에서 켜기로 전환합니다.

    5. 저장 버튼을 클릭하여 변경사항을 확인합니다.

API

백업 계획을 수정하려면 kubectl edit 명령어를 사용하여 ClusterBackupPlan 커스텀 리소스를 수정합니다. 이 명령어는 기본 텍스트 편집기에서 리소스의 YAML 구성을 엽니다.

kubectl edit clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME

다음을 바꿉니다.

  • CLUSTER_BACKUP_PLAN: 수정할 백업 계획의 이름입니다.
  • PROJECT_NAME: GDC 프로젝트의 이름입니다.

편집기에서 다음과 같은 필드를 수정할 수 있습니다.

  • spec.backupSchedule.cronSchedule: 백업 빈도를 업데이트합니다.
  • spec.backupSchedule.paused: 백업 일정을 사용 설정 또는 중지합니다.
  • spec.retentionPolicy.backupRetainDays: 백업 보관 기간을 변경합니다.
  • spec.retentionPolicy.backupDeleteLockDays: 삭제 잠금 기간을 변경합니다.
  • spec.retentionPolicy.locked: 보관 정책을 잠급니다.
  • spec.deactivated: 백업 계획을 비활성화합니다. 이 필드를 'true'로 설정하면 백업 생성이 방지되고 추가 업데이트가 이루어지지 않습니다.

백업 계획 비활성화

GDC 콘솔 또는 API를 사용하여 백업 계획을 비활성화합니다.

콘솔

  1. GDC 콘솔에 로그인합니다.
  2. 탐색 메뉴에서 Backup for Clusters를 클릭합니다.
  3. 프로젝트 선택을 클릭하고 역할에 따라 조직 또는 프로젝트를 선택합니다.
    • 사용자 클러스터 백업 관리자: 조직을 선택하여 조직의 모든 백업 계획을 확인하거나 프로젝트를 선택하여 프로젝트의 모든 백업 계획을 확인합니다.
    • 백업 생성자: 프로젝트를 선택하여 프로젝트의 모든 백업 계획을 확인합니다.
  4. 백업 계획 탭을 클릭합니다.
  5. 비활성화할 백업 계획의 이름을 클릭합니다.
  6. 요금제 비활성화 버튼을 클릭합니다.
  7. 비활성화할 백업 계획의 이름을 필드에 입력합니다.
  8. 비활성화 버튼을 클릭하여 이 백업 계획의 비활성화를 완료합니다.

API

백업 계획을 비활성화하려면 deactivated 필드를 true로 설정합니다.

kubectl patch clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME -p '{"spec":{"deactivated":true}}' --type=merge

다음을 바꿉니다.

  • CLUSTER_BACKUP_PLAN: 비활성화할 백업 계획의 이름입니다.
  • PROJECT_NAME: GDC 프로젝트의 이름입니다.

다음 단계