Qdrant Private Cloud 백업

Qdrant Private Cloud 백업 (private-cloud-backups)

출처: Qdrant 공식문서

Qdrant Private Cloud에서 백업을 만들고 복원하는 방법을 알아볼게요. 백업은 크게 일회성 백업주기적(반복) 백업 두 가지 방식으로 만들 수 있어요. 둘 다 Kubernetes의 사용자 정의 리소스(CR, Custom Resource)를 통해 관리해요.

일회성 백업 (One-time backup)

일회성 백업을 만들려면 QdrantClusterSnapshot 리소스를 생성하면 돼요:

apiVersion: qdrant.io/v1
kind: QdrantClusterSnapshot
metadata:
  name: "qdrant-a7d8d973-0cc5-42de-8d7b-c29d14d24840-snapshot-timestamp"
  labels:
    cluster-id: "a7d8d973-0cc5-42de-8d7b-c29d14d24840"
    customer-id: "acme-industries"
spec:
  cluster-id: "a7d8d973-0cc5-42de-8d7b-c29d14d24840"
  retention: 1h

이 리소스는 클러스터의 스냅샷을 만들고, retention(보존 기간)에 지정한 시간만큼 유지해요. 위 예시에서는 1h, 즉 1시간 동안 보관한답니다.

주기적 백업 (Recurring backup)

주기적으로 반복되는 백업은 QdrantClusterScheduledSnapshot 리소스로 만들 수 있어요:

apiVersion: qdrant.io/v1
kind: QdrantClusterScheduledSnapshot
metadata:
  name: "qdrant-a7d8d973-0cc5-42de-8d7b-c29d14d24840-snapshot-timestamp"
  labels:
    cluster-id: "a7d8d973-0cc5-42de-8d7b-c29d14d24840"
    customer-id: "acme-industries"
spec:
  scheduleShortId: a7d8d973
  cluster-id: "a7d8d973-0cc5-42de-8d7b-c29d14d24840"
  # every hour
  schedule: "0 * * * *"
  retention: 1h

여기서 schedule은 cron 표현식이에요. 위 예시의 "0 * * * *"는 매시간 정각에 백업을 실행하라는 뜻이에요. 예약된 백업 역시 retention만큼 보관돼요.

백업에서 복원하기 (Restore)

백업에서 복원하려면 QdrantClusterRestore 리소스를 생성해요:

apiVersion: qdrant.io/v1
kind: QdrantClusterRestore
metadata:
  name: "qdrant-a7d8d973-0cc5-42de-8d7b-c29d14d24840-snapshot-restore-01"
  labels:
    cluster-id: "a7d8d973-0cc5-42de-8d7b-c29d14d24840"
    customer-id: "acme-industries"
spec:
  source:
    snapshotName: qdrant-a7d8d973-0cc5-42de-8d7b-c29d14d24840-snapshot-timestamp
    namespace: qdrant-private-cloud
  destination:
    name: qdrant-a7d8d973-0cc5-42de-8d7b-c29d14d24840
    namespace: qdrant-private-cloud

복원 리소스는 source(어떤 스냅샷에서)와 destination(어디로)을 지정해요. 위 예시에서는 qdrant-private-cloud 네임스페이스의 스냅샷을, 같은 네임스페이스의 Qdrant 클러스터로 복원해요.

주의할 점

모든 리소스에서 cluster-idcustomer-id 레이블은 반드시 해당하는 QdrantCluster 리소스의 값으로 설정해야 해요. 이 값이 일치하지 않으면 리소스가 올바른 클러스터에 적용되지 않을 수 있어요.

더 알아보기 (Learn more)