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-id와 customer-id 레이블은 반드시 해당하는 QdrantCluster 리소스의 값으로 설정해야 해요. 이 값이 일치하지 않으면 리소스가 올바른 클러스터에 적용되지 않을 수 있어요.