백업 집합 계획


이 페이지에서는 Google Kubernetes Engine(GKE)에서 워크로드를 백업하는 데 사용되는 Backup for GKE 백업 계획을 만드는 방법을 설명합니다.

백업 계획은 백업 시퀀스의 구성, 위치, 관리 기능을 제공합니다. 백업 계획에는 소스 클러스터, 백업할 워크로드 선택, 이 계획으로 생성된 백업 아티팩트가 저장되는 리전을 포함한 백업 구성이 포함됩니다.

각 클러스터에 백업 계획을 하나 이상 만들 수 있습니다. 클러스터에 2개 이상의 백업 계획이 필요한 이유는 크게 2가지입니다.

  • 여러 리전에 백업 아티팩트를 저장하려고 합니다. 이 경우 백업을 저장할 리전마다 백업 계획을 만듭니다.
  • 클러스터의 백업을 파티션으로 나눕니다. 예를 들면 다음과 같습니다.

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

모든 클러스터에 하나 이상의 백업 계획을 만드는 것이 좋습니다.

백업 예약 방법(스마트 예약 또는 크론 예약)으로 백업을 자동으로 만드는 백업 계획을 만들 수 있습니다. 백업 계획에 스마트 예약을 사용하는 것이 좋습니다. 이렇게 하면 목표 복구 시간(RPO) 요구사항을 충족하도록 백업이 자동으로 생성됩니다. 자세한 내용은 자동 백업 만들기 및 삭제를 참조하세요.

백업 예약 방법으로 백업 계획을 만들지 않으려면 워크로드를 수동으로 백업해야 합니다. 백업 계획을 만든 후에 해당 계획에서 백업을 만들 수 있습니다.

시작하기 전에

필요한 역할

백업 계획을 만들고 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Backup for GKE 관리자(roles/gkebackup.admin) IAM 역할의 하위 집합인 Backup for GKE 백업 관리자(roles/gkebackup.backupAdmin)를 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

백업 계획 만들기

gcloud CLI 또는 Google Cloud 콘솔을 사용하여 백업 계획을 만듭니다.

gcloud

일정을 사용하여 백업 계획을 만들려면 다음 명령어를 실행하세요.

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --encryption-key=ENCRYPTION_KEY
    --target-rpo-minutes=TARGET_RPO_MINUTES \
    --exclusion-windows-file=EXCLUSION_WINDOWS_FILE
    --cron-schedule=CRON_SCHEDULE \
    --backup-retain-days=RETAIN_DAYS \
    --backup-delete-lock-days=DELETE_LOCK_DAYS \
    --locked

다음을 바꿉니다.

  • BACKUP_PLAN: 만들려는 백업 계획의 이름입니다.
  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
  • LOCATION: 리소스의 컴퓨팅 리전입니다(예: us-central1). 리소스 위치 정보를 참조하세요.
  • CLUSTER: 클러스터의 상대 경로입니다.
    • 리전 클러스터: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
    • 영역 클러스터: projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
  • CLUSTER_NAME: 백업할 클러스터의 이름입니다.
  • --all-namespaces: 클러스터의 모든 네임스페이스를 백업합니다.

    또는 다음을 지정합니다.

    • --selected-applications를 백업할 NAMESPACE1/APP1,NAMESPACE2/APP2,...와 같은 ProtectedApplications 목록으로 바꿉니다.
    • --selected-namespaces를 백업할 NAMESPACE1,NAMESPACE2,...와 같은 네임스페이스 목록으로 바꿉니다.

    백업 계획을 만들 때 이러한 옵션 중 하나를 지정해야 합니다.

  • --include-secrets: Secret 리소스가 백업 범위에 있으면 이를 포함하는 선택적 인수입니다.

  • --include-volume-data: 백업에 영구 볼륨 데이터를 포함하는 선택적 인수입니다. 복원 중 빈 볼륨을 만들려면 이 인수를 설정하지 마세요.

  • ENCRYPTION_KEY: 고객 관리 암호화 키의 경로를 정의하는 선택적 인수입니다. CMEK 암호화 정보를 참조하세요.

  • TARGET_RPO_MINUTES: EXCLUSION_WINDOWS_FILE이 설정된 경우 필수 인수입니다. 목표 RPO를 분 단위로 지정합니다. 스마트 예약은 이 값을 사용하여 백업을 자동으로 만듭니다. 최솟값은 60분(1시간)이고 최댓값은 86,400분(60일)입니다. 하나의 백업 계획에서 TARGET_RPO_MINUTESCRON_SCHEDULE을 동시에 설정할 수 없습니다.

  • EXCLUSION_WINDOWS_FILE: 백업을 수행할 수 없는 기간을 정의하는 선택적 인수입니다. 모든 시간은 UTC로 해석됩니다. 이 인수는 TARGET_RPO_MINUTES가 설정된 경우에만 사용할 수 있습니다.

  • CRON_SCHEDULE: 백업을 자동으로 만들고 표준 크론 문법을 지원하는 크론 일정을 정의하는 선택적 인수입니다. 예를 들어 "10 3 * * *"는 매일 오전 3시 10분에 백업을 만듭니다. 모든 시간은 UTC로 해석됩니다. 예약된 백업 간의 최소 간격은 10분입니다. 하나의 백업 계획에서 CRON_SCHEDULETARGET_RPO_MINUTES를 동시에 설정할 수 없습니다.

  • RETAIN_DAYS: TARGET_RPO_MINUTES 또는 CRON_SCHEDULE이 설정된 경우 필수 인수입니다. 백업을 보관할 일수를 지정합니다. 보관 기간이 만료된 후 이 계획의 백업이 자동으로 삭제됩니다.

  • DELETE_LOCK_DAYS: 백업을 삭제할 수 없는 기간의 일수를 지정하는 선택적 인수입니다. 이 값을 설정하면 수명 기간이 만료될 때까지 해당 계획에 대해 생성된 백업을 자동 또는 수동으로 삭제할 수 없습니다.

  • --locked: 백업 계획의 보관 정책을 잠그기 위한 선택적 인수입니다.

전체 옵션 목록은 gcloud beta container backup-restore backup-plans create 문서를 참조하세요.

RPO가 24시간이고 단일 제외 기간이 있는 모든 네임스페이스의 백업 계획 만들기

exclusionWindows의 YAML 배열이 포함된 window.yaml 파일을 만듭니다.

exclusionWindows:
- startTime:
    hours: 1
    minutes: 0
  duration: "3600s"
  singleOccurrenceDate:
    day: 1
    month: 3
    year: 2024

다음 명령어는 목표 RPO가 24시간이고 2024년 3월 1일 오전 1시부터 오전 2시까지 백업이 허용되지 않는 모든 네임스페이스의 백업 계획을 만듭니다. 백업은 7일 동안 보관되고 생성 후 3일 동안 잠깁니다.

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --target-rpo-minutes=1440 \
    --exclusion-windows-file=window.yaml \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

2시간 RPO 및 여러 제외 기간이 있는 모든 네임스페이스에 대한 백업 계획 만들기

exclusionWindows의 YAML 배열(주별 기간 하나와 단일 어커런스 기간 하나)이 포함된 window.yaml 파일을 만듭니다.

exclusionWindows:
- startTime:
    hours: 15
    minutes: 0
  duration: "5400s"
  daysOfWeek:
    daysOfWeek:
    - MONDAY
    - FRIDAY
- startTime:
    hours: 1
    minutes: 0
  duration: "3600s"
  singleOccurrenceDate:
    day: 1
    month: 3
    year: 2024

다음 명령어는 목표 RPO가 2시간이고 2024년 3월 1일 오전 1시부터 오전 2시까지 그리고 매주 월요일과 금요일 오후 3시부터 오후 4시 30분까지 백업이 허용되지 않는 모든 네임스페이스의 백업 계획을 만듭니다. 백업은 7일 동안 보관되고 생성 후 3일 동안 잠깁니다.

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --target-rpo-minutes=120 \
    --exclusion-windows-file=window.yaml \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

일일 크론 일정으로 모든 네임스페이스의 백업 계획 만들기

다음 명령어는 매일 오전 5시 20분에 모든 네임스페이스의 일일 백업을 예약하는 백업 계획을 만듭니다. 백업은 7일 동안 보관되고 생성 후 3일 동안 잠깁니다.

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --cron-schedule="20 5 * * *" \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

시간별 크론 일정으로 선택한 네임스페이스의 백업 계획 만들기

다음 명령어는 매시간 15분에 선택한 네임스페이스(my-ns)에 대한 시간별 백업을 예약하는 백업 계획을 만듭니다. 백업은 생성 후 3일 동안 보관됩니다.

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --selected-namespaces=my-ns \
    --include-secrets \
    --include-volume-data \
    --cron-schedule="15 * * * *" \
    --backup-retain-days=3

선택한 ProtectedApplication의 백업 계획 만들기

다음 명령어는 ProtectedApplication(my-ns/my-app)을 선택하는 백업 계획을 만듭니다.

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --selected-applications=my-ns1/my-app1,my-ns2/my-app2 \
    --include-secrets \
    --include-volume-data

콘솔

다음 안내에 따라 Google Cloud 콘솔에서 백업 계획을 만듭니다.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 탐색 메뉴에서 Backup for GKE를 클릭합니다.

  3. 백업 계획 만들기를 클릭합니다.

  4. 계획 세부정보 섹션에서 다음을 수행합니다.

    1. 백업할 클러스터를 선택합니다.
    2. 백업 계획 이름과 선택적 설명을 입력합니다.
    3. 백업 위치를 선택합니다.
  5. 백업을 자동으로 만들려면 백업 일정 섹션에서 백업 일정 사용 설정 체크박스를 선택한 후 다음 방법 중 하나를 선택합니다.

    1. 스마트 일정을 선택하고 다음을 수행합니다.

      1. 목표 RPO 필드에서 백업 계획의 RPO를 입력한 후 드롭다운에서 , 시간 또는 로 RPO 값을 선택합니다.
      2. 선택사항: 백업 제외에 대한 단일 반복 백업 제외 기간 정의 체크박스를 선택합니다.
        1. 제외 기간에서 매일 또는 매주를 선택합니다.
        2. 반복 섹션에서 백업 계획에서 제외할 요일을 선택합니다. 이 필드는 주별 제외 기간에만 표시됩니다.
        3. 기간 시작 시간 필드에 백업 계획 제외의 시작 시간을 입력합니다.
        4. 기간 필드에 백업 계획 제외 기간을 입력한 다음 드롭다운에서 , 또는 시간을 클릭합니다.
      3. 선택사항: 하나 이상의 단일 어커런스 백업 제외 기간을 만들려면 하나 이상의 백업 제외 날짜 정의 체크박스를 선택하고 다음을 수행합니다.
        1. 제외 날짜 추가를 클릭합니다.
        2. 제외 기간의 시작 날짜 및 시간 필드에서 아이콘을 클릭한 후 백업의 날짜시간을 선택합니다.
        3. 기간 필드에 백업 계획 제외 기간을 입력한 다음 드롭다운에서 , 또는 시간을 클릭합니다.
    2. 크론 일정을 선택하고 표준 크론 문법을 사용하여 크론 표현식을 입력합니다. 예를 들어 10 3 * * *는 매일 오전 3시 10분에 백업을 만듭니다. 예약된 백업 간의 최소 간격은 10분입니다.

  6. 보관 정책 섹션에서 다음을 수행합니다.

    1. 백업이 자동으로 삭제되기 전에 백업을 보존할 일 수를 설정합니다.
    2. 백업을 삭제할 수 없는 기간의 일수를 설정합니다.
    3. 보관 정책을 잠그려면 자물쇠 아이콘을 클릭하여 잠금을 끄기에서 켜기로 전환합니다.
  7. 백업 범위 및 암호화 구성 섹션에서 다음을 수행합니다.

    1. 백업 계획의 범위를 선택합니다.

      • 전체 클러스터(모든 네임스페이스 포함)를 클릭하여 백업의 모든 네임스페이스 리소스를 백업합니다.
      • 이 클러스터 내에서 선택된 네임스페이스를 클릭하여 백업 계획에 포함할 네임스페이스를 선택합니다.
      • 이 클러스터 내에서 선택된 보호되는 애플리케이션을 클릭하고 네임스페이스와 애플리케이션 이름을 지정하여 리소스를 추가합니다.
    2. Kubernetes 보안 비밀 리소스를 포함할 보안 비밀 체크박스를 클릭합니다.

    3. 백업에 볼륨 데이터를 포함하려면 영구 볼륨 데이터 체크박스를 클릭합니다. 볼륨 데이터를 건너뛰도록 선택하면 복원 중 볼륨 데이터를 복원할 수 없습니다. 하지만 복원할 대 새 볼륨 프로비저닝 또는 기존 볼륨 재사용과 같이 볼륨 데이터를 선택할 수 있는 두 가지 옵션이 제공됩니다.

    4. CMEK 암호화를 사용 설정하려면 먼저 적절한 CMEK 키에 대한 액세스 권한을 부여해야 합니다(CMEK 암호화 정보 참조).

      1. 고객 관리 암호화 키 사용 체크박스를 클릭하여 키를 선택합니다.
  8. 백업 계획 세부정보를 검토하고 계획 만들기를 클릭합니다.

Terraform

google_gke_backup_backup_plan 리소스를 만듭니다.

resource "google_gke_backup_backup_plan" "basic" {
   name = "BACKUP_PLAN"
   cluster = google_container_cluster.CLUSTER.id
   location = "LOCATION"
   retention_policy {
     backup_retain_days = 7
   }
   backup_schedule {
     cron_schedule = "17 3 * * *"
   }
   backup_config {
     include_volume_data = true
     include_secrets = true
     all_namespaces = true
   }
}

다음을 바꿉니다.

  • BACKUP_PLAN: 만들려는 백업 계획의 이름입니다.
  • CLUSTER: google_container_cluster 리소스 이름입니다.
  • LOCATION: 백업을 저장할 리전입니다.

자세한 내용은 gke_backup_backup_plan을 참조하세요.

백업 계획 보기

gcloud CLI 또는 Google Cloud Console을 사용하여 백업 및 세부정보를 확인합니다.

gcloud

프로젝트와 리전 내에 있는 모든 백업 계획을 나열하려면 다음 명령어를 실행하세요.

gcloud beta container backup-restore backup-plans list \
    --project=PROJECT_ID \
    --location=LOCATION

list 명령어의 경우에만 PROJECT_ID를 제외한 모든 매개변수의 값으로 -를 제공할 수 있습니다. - 값은 와일드 카드로 사용됩니다. 명령줄 옵션을 지정하지 않거나 속성을 설정하지 않은 경우에는 - 값이 모든 매개변수의 기본값입니다.

전체 옵션 목록은 gcloud beta container backup-restore backup-plans list 문서를 참조하세요.

백업 계획 세부정보를 보려면 다음 명령어를 실행합니다.

gcloud beta container backup-restore backup-plans describe BACKUP_PLAN \
     --project=PROJECT_ID \
     --location=LOCATION

전체 옵션 목록은 gcloud beta container backup-restore backup-plans describe 문서를 참조하세요.

콘솔

다음 안내에 따라 Google Cloud 콘솔에서 백업 계획을 확인합니다.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 탐색 메뉴에서 Backup for GKE를 클릭합니다.

  3. 백업 계획 탭을 클릭합니다.

  4. 클러스터를 확장하고 계획 이름을 클릭합니다.

  5. 세부정보 탭을 클릭하여 계획 세부정보를 확인합니다.

백업 계획 업데이트

gcloud CLI 또는 Google Cloud Console을 사용하여 백업을 업데이트합니다.

gcloud

예를 들어 새 설명을 추가하여 백업 계획을 업데이트하려면 다음 명령어를 실행하세요.

gcloud beta container backup-restore backup-plans update BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --description=DESCRIPTION

전체 옵션 목록은 gcloud beta container backup-restore backup-plans update 문서를 참조하세요.

콘솔

다음 안내에 따라 Google Cloud 콘솔에서 백업 계획을 업데이트합니다.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 탐색 메뉴에서 Backup for GKE를 클릭합니다.

  3. 백업 계획 탭을 클릭합니다.

  4. 클러스터를 확장하고 계획 이름을 클릭합니다.

  5. 세부정보 탭을 클릭하여 계획 세부정보를 수정합니다.

  6. 수정을 클릭하여 계획 섹션을 수정하고 변경사항 저장을 클릭합니다.

백업 일정 일시중지

백업 일정을 일시중지할 수 있습니다. 일정이 일시중지되면 자동 백업이 생성되지 않습니다. 여전히 수동으로 백업을 만들 수 있습니다.

gcloud

백업 일정을 일시중지하려면 다음 명령어를 실행하세요.

gcloud beta container backup-restore backup-plans update BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --paused

전체 옵션 목록은 gcloud beta container backup-restore backup-plans update 문서를 참조하세요.

콘솔

Google Cloud 콘솔에서 백업 일정을 일시중지하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 탐색 메뉴에서 Backup for GKE를 클릭합니다.

  3. 백업 계획 탭을 클릭합니다.

  4. 클러스터를 확장하고 계획 이름을 클릭합니다.

  5. 일정 일시중지를 클릭한 후 확인 대화상자에서 일정 일시중지를 클릭합니다.

백업 계획 삭제

gcloud CLI 또는 Google Cloud Console을 사용해서 복원 계획을 삭제할 수 있습니다. 계획에 백업이 포함되어 있으면 백업 계획을 삭제할 수 없습니다.

gcloud

백업 계획을 삭제하려면 다음 명령어를 실행하세요.

gcloud beta container backup-restore backup-plans delete BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION

전체 옵션 목록은 gcloud beta container backup-restore backup-plans delete 문서를 참조하세요.

콘솔

다음 안내에 따라 Google Cloud 콘솔에서 백업 계획을 삭제합니다.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 탐색 메뉴에서 Backup for GKE를 클릭합니다.

  3. 백업 계획 탭을 클릭합니다.

  4. 클러스터를 확장하고 계획 이름을 클릭합니다.

  5. 계획 삭제를 클릭합니다.

  6. 백업 계획 이름을 입력한 후 확인 대화상자에서 백업 계획 삭제를 클릭합니다.

다음 단계