백업 저장소 만들기

이 페이지에서는 에어 갭이 있는 Google Distributed Cloud (GDC)에서 가상 머신 (VM)의 백업 저장소를 만드는 방법을 설명합니다.

백업 또는 스냅샷을 만들기 전에 여러 백업 또는 스냅샷 간에 공유할 수 있는 백업 저장소를 하나 이상 정의해야 합니다. 백업 저장소는 백업 시스템에 백업을 저장하거나 검색할 위치를 알려줍니다. VM의 백업 저장소는 관리 API 서버로 제한됩니다.

시작하기 전에

백업 저장소를 만들기 전에 기본 스토리지를 프로비저닝하고 다음을 비롯한 필요한 권한을 구성해야 합니다.

백업 저장소 만들기

GDC 콘솔 또는 API를 사용하여 저장소를 만듭니다.

콘솔

  1. GDC 콘솔에 로그인합니다.
  2. 탐색 메뉴에서 가상 머신 백업 > 저장소를 클릭합니다.
  3. 저장소 만들기를 클릭합니다.
  4. 저장소 이름과 설명(선택사항)을 입력합니다.
  5. S3 URI 엔드포인트 필드에 객체 스토리지 사이트의 정규화된 도메인 이름이 포함된 엔드포인트(예: https://objectstorage.ORG.ZONE.DOMAIN.SUFFIX:PORT)를 입력합니다. 예를 들면 https://objectstorage.org-1.zone1.google.gdch.test입니다. Bucket 커스텀 리소스에서 값을 가져오려면 다음 명령어를 실행합니다.

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.endpoint'
    
  6. 버킷 이름 필드에 버킷의 정규화된 도메인 이름을 입력합니다. GDC 콘솔의 버킷 세부정보 페이지에서 이 이름을 가져올 수 있습니다. 또는 Bucket 커스텀 리소스에서 값을 가져오려면 다음 명령어를 실행하세요.

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.fullyQualifiedName'
    
  7. 버킷 리전 필드에 버킷이 생성된 리전을 입력하고 버킷 커스텀 리소스에서 값을 가져오려면 다음 명령어를 실행합니다.

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.region'
    
  8. 액세스 키 ID 및 액세스 키 필드에 액세스 키 ID와 보안 비밀 액세스 키를 입력합니다. 이러한 사용자 인증 정보를 획득하는 방법에 대한 자세한 내용은 스토리지 버킷 액세스 권한 부여 및 획득을 참고하세요.

  9. 만들기를 클릭합니다.

API

S3 사용자 인증 정보를 사용하여 BackupRepository 커스텀 리소스를 만듭니다.

  1. S3 사용자 인증 정보가 포함된 보안 비밀의 이름을 가져옵니다.

    export PROJECT_NAME=PROJECT_NAME
    export SA_NAME=SA_NAME
    kubectl get secrets --namespace $PROJECT_NAME -o json | jq -r --arg USER_NAME "${SA_NAME:?}" '.items[] | select( (.metadata.annotations."object.gdc.goog/subject"==$USER_NAME)) | .metadata.name'
    

    명령어에서 반환된 비밀 이름을 기록하고 다음 단계에서 SECRET_NAME로 사용해야 합니다.

    다음을 바꿉니다.

    • PROJECT_NAME: 프로젝트의 이름
    • SA_NAME: 객체 스토리지에 액세스하는 데 사용되는 서비스 계정의 이름입니다.
  2. FQDN 및 엔드포인트와 같은 버킷 세부정보를 가져오려면 출력에서 fullyQualifiedName 및 zonalEndpoints 값을 추출합니다.

    kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yaml
    
  3. 관리 API 서버 내에 BackupRepository를 만듭니다.

    apiVersion: backup.gdc.goog/v1
    kind: BackupRepository
    metadata:
      name: REPOSITORY_NAME
    spec:
      secretReference:
        namespace: PROJECT_NAME
        name: SECRET_NAME
      endpoint: ENDPOINT
      type: "S3"
      s3Options:
        bucket: BUCKET_FQDN
        region: REGION
        forcePathStyle: FORCE_PATH_STYLE
      importPolicy: IMPORT_POLICY
    

    다음을 바꿉니다.

    • REPOSITORY_NAME: 백업 저장소의 이름
    • PROJECT_NAME: 프로젝트의 이름
    • SA_NAME: 객체 스토리지에 액세스하는 데 사용되는 서비스 계정의 이름입니다.
    • SECRET_NAME: kubectl get secrets 명령어에서 반환된 보안 비밀의 이름입니다.
    • ENDPOINT: 스토리지 시스템의 정규화된 도메인 이름입니다(예: https://objectstorage.google.gdch.test). type 필드에는 S3 값만 지원됩니다.
    • BUCKET_FQDN: 버킷의 정규화된 이름입니다.
    • REGION: 버킷이 생성된 리전입니다.
    • FORCE_PATH_STYLE: forcePathStyle 필드를 사용하여 객체의 경로 스타일 URL을 강제합니다. 이 필드의 값은 true 또는 false이어야 합니다.
    • IMPORT_POLICY: 다음 중 하나로 설정합니다.
      • ReadWrite: 이 저장소를 사용하여 백업, 백업 계획, 복원을 예약하거나 만들 수 있습니다.
      • ReadOnly: 이 저장소는 백업을 가져오고 보는 데만 사용할 수 있습니다. 이 저장소에서는 새 백업이나 리소스를 만들 수 없지만 복원에서는 읽기 전용 백업을 사용하여 복원할 수 있습니다. 백업 저장소를 ReadOnly로 사용할 수 있는 빈도에는 제한이 없습니다.

    BackupRepository는 이름이 동일한 읽기-쓰기 지원 BackupRepository 리소스를 관리 API 서버에 만듭니다.

다음 단계