본문 바로가기
문서 목차
ORKESTRIX설치

Velero (플랫폼 백업)

쿠버네티스 매니페스트 및 영구 볼륨 데이터를 원격 저장소에 백업 하기 위한 Velero 를 구성합니다. CSI 스냅샷과 파일시스템 백업(node agent)을 함께 사용하며, 웹 UI(Velero UI)가 함께 배포됩니다.

QUANTUM C&S

쿠버네티스 매니페스트 및 영구 볼륨 데이터를 원격 저장소에 백업하기 위한 Velero를 구성합니다. CSI 스냅샷과 파일시스템 백업(node-agent)을 함께 사용하며, 웹 UI(Velero-UI)가 함께 배포됩니다.

설정값

inventory/qks/group_vars/all/all-k8s.yaml:

qks_velero_enabled: true
qks_velero_release: velero
qks_velero_version: 12.2.0
qks_velero_namespace: velero
qks_velero_s3_bucket: velero
qks_velero_s3_url: "{{ qks_cephadm_s3_fqdn }}"
qks_velero_s3_access_key_id: "{{ qks_cephadm_s3_access_key }}"
qks_velero_s3_secret_access_key: "{{ qks_cephadm_s3_secret_key }}"
qks_velero_ui_fqdn: velero.{{ kube_default_domain }}
qks_velero_ui_username: admin
qks_velero_ui_password: "{{ kube_default_passwd }}"

실행

./install.sh ubuntu plays/qks-velero.yaml

설치 흐름

./install.sh ubuntu plays/qks-velero.yaml
  ├─ 1. External-Snapshotter(CSI 스냅샷 CRD/컨트롤러) 설치
  ├─ 2. VolumeSnapshotClass(RBD/CephFS) 및 S3 자격증명 Secret 생성
  ├─ 3. Helm으로 Velero 배포 (server+node-agent)
  ├─ 4. Helm으로 Velero-UI 배포
  └─ 5. 접속 도메인을 각 노드 /etc/hosts에 등록

설치 확인

kubectl get pods -n <qks_velero_namespace>
kubectl get backupstoragelocation -n <qks_velero_namespace>

velero/velero-ui/node-agent(전 노드)/csi-snapshotter 파드가 모두 Running이고, BackupStorageLocation의 PHASE가 Available이어야 합니다.

실제 동작 확인

백업 실행:

kubectl apply -f - <<EOF
apiVersion: velero.io/v1
kind: Backup
metadata:
  name: test-backup
  namespace: <qks_velero_namespace>
spec:
  includedNamespaces:
    - <백업할 네임스페이스>
  storageLocation: velero
EOF
kubectl get backup test-backup -n <qks_velero_namespace> -o jsonpath='{.status.phase}'

Completed가 나오면 정상입니다.

복원 실행:

kubectl apply -f - <<EOF
apiVersion: velero.io/v1
kind: Restore
metadata:
  name: test-restore
  namespace: <qks_velero_namespace>
spec:
  backupName: test-backup
EOF
kubectl get restore test-restore -n <qks_velero_namespace> -o jsonpath='{.status.phase}'

Completed가 나오고, 대상 네임스페이스의 리소스와 퍼시스턴트 볼륨 데이터가 원래대로 복원되어 있으면 정상입니다.

다음 단계