본문으로 건너뛰기

백업/복구

KIOPS의 백업은 환경에 따라 사용하는 도구가 다릅니다. K8s는 Velero와 컨트롤 플레인 백업을, Docker/Podman은 컨테이너 백업을 사용합니다.

이 가이드는 자신의 환경에 맞는 도구를 고르고 실행하는 순서를 안내합니다.

이 가이드는 백업이라는 단어가 막연하게 느껴지는 운영자도 무엇을 / 어떻게 / 어디로 백업할지 한눈에 그릴 수 있도록 정리합니다. K8s/Docker/Podman 환경에 따라 사용하는 도구(Velero, etcd 스냅샷, 컨트롤 플레인 백업 등)가 다르므로, 자신의 환경에 해당하는 절만 선택하여 읽으면 됩니다.

백업/복구 개요

K8s 클러스터 백업 빠른 실행 — 클러스터(워크로드·PV) 백업의 기본 흐름은 다음과 같습니다.

  1. [백업 관리] 페이지로 이동합니다.
  2. 저장소 관리 탭에서 외부 오브젝트 스토리지를 먼저 등록합니다(최초 1회). 등록돼 있지 않으면 백업이 실패합니다.
  3. 백업 생성 마법사를 열어 백업할 런타임(K8s 클러스터)과 네임스페이스를 선택합니다.
  4. 백업 생성을 실행하면 Velero가 워크로드와 PV 데이터를 외부 저장소로 백업합니다. 클러스터 구조(etcd+PKI)까지 보호하려면 컨트롤 플레인 백업을 함께 사용합니다.

클러스터 단위 백업은 [백업 관리] 페이지에서 수행합니다. [데이터베이스 관리]의 백업 탭은 DB 전용이며 K8s 백업과 무관합니다.

시작하기 전에: 알아둘 용어​

백업 관련 용어를 짧게 정리합니다. 본문에서 처음 등장할 때 이 사전을 참고하세요.

  • Velero: K8s 워크로드와 PV(영구 볼륨) 데이터를 외부 저장소로 백업/복원하는 표준 도구입니다.
  • etcd 스냅샷: K8s가 클러스터 상태(노드/리소스/설정)를 보관하는 데이터베이스(etcd)의 시점 백업입니다.
  • 외부 저장소(External Storage): 백업 데이터를 보관할 별도 저장 공간입니다. (현재 SeaweedFS, S3 호환 저장소 지원, NFS는 준비 중)
  • 백업 유형(서비스 / 인프라): "서비스 한 개만" 백업할지 "클러스터/호스트 전체"를 백업할지의 구분입니다.
  • 복구 가이드: 백업 목록의 각 항목에서 복구 절차를 안내하는 별도 화면입니다.
  • 컨트롤 플레인 백업: etcd 스냅샷과 PKI 인증서(/etc/kubernetes/pki)를 단일 번들로 마스터 노드에서 직접 백업하는 K8s 클러스터 단위 DR 도구입니다. Velero가 처리하지 않는 클러스터 복구에 사용합니다.

백업 분류​

KIOPS의 백업은 개념적으로 서비스 백업과 인프라 백업으로 나눌 수 있습니다. 서비스 백업은 [서비스 관리] 페이지의 서비스 백업 생성 모달에서, 인프라 백업은 [백업 관리] 페이지의 백업 생성 마법사에서 진행합니다. (두 종류를 한 화면에서 세그먼트로 고르는 방식은 아닙니다.)

서비스 백업​

특정 서비스 단위의 백업을 생성합니다. 서비스 백업 생성 모달에서 진입하며, 런타임 종류에 따라 다음을 지원합니다.

  • Kubernetes 서비스: 해당 서비스가 사용하는 Kubernetes 리소스를 Velero 기반으로 백업합니다.
  • Docker/Podman 서비스: 컨테이너와 볼륨, docker-compose 설정을 백업합니다.

인프라 백업​

런타임 환경(클러스터 또는 Docker/Podman 호스트) 전체 또는 일부를 백업합니다. 런타임 종류에 따라 다음과 같은 유형을 지원합니다.

  • Kubernetes 인프라 백업
    • Velero 백업: 워크로드(Deployment, Service 등)와 PV 데이터를 외부 오브젝트 스토리지에 저장합니다. 다중 네임스페이스 선택과 PVC 데이터 포함 옵션을 제공하며, PV/PVC 제외·앱 리소스만 같은 리소스 종류 필터는 복구 단계에서 선택합니다.
    • 컨트롤 플레인 백업: etcd 스냅샷과 PKI 인증서를 단일 번들로 오브젝트 스토리지에 백업합니다. 클러스터 전체 재구성이 필요한 DR 상황에 사용합니다.
  • Docker/Podman 인프라 백업: 호스트 전체 또는 선택한 컨테이너를 대상으로 볼륨/설정을 백업합니다.

어떤 백업 유형을 선택해야 하나요?

  • Kubernetes 환경: 컨트롤 플레인 백업 + Velero 백업을 함께 사용하면 클러스터 재구성 수준의 DR이 가능합니다. 컨트롤 플레인 백업은 클러스터 구조(etcd+PKI), Velero는 애플리케이션 데이터를 각각 보호합니다.
  • Docker/Podman 환경: Docker 백업으로 컨테이너 볼륨과 설정을 보호하세요.
  • 서비스 단위 관리: 서비스별 빠른 백업/복원이 필요한 경우 서비스 백업을 활용하세요.

백업 시나리오​

인프라 설치​

백업을 시작하기 전에 필요한 인프라를 먼저 구성합니다.

백업 가이드​

환경에 맞는 백업 방법을 선택하세요.

  • Velero/오브젝트 스토리지 설치: Velero 설치와 함께 Velero 백업 생성 옵션(다중 네임스페이스 선택, PVC 데이터 포함)을 안내합니다.
  • 컨트롤 플레인 백업: etcd 스냅샷과 PKI 인증서를 단일 번들로 백업합니다. 클러스터 DR의 핵심입니다.
  • Docker 백업: Docker 및 Podman 컨테이너와 볼륨, 설정을 안전하게 백업합니다.
  • 복구: Velero(네임스페이스/리소스 단위), 컨트롤 플레인, Docker/Podman 백업을 사용하여 시스템을 복원합니다.

권장 백업 전략: 운영 환경에서는 일일 백업과 주간 전체 백업을 병행하는 것을 권장합니다. 중요한 변경 작업 전에는 반드시 수동 백업을 생성하세요.


문제 해결​

자주 하는 실수​

  • 외부 저장소를 등록하지 않은 채 Velero 백업 시도: Velero 백업은 백업 결과를 외부 저장소에 저장해야 의미가 있습니다. 저장소 관리 탭에서 오브젝트 스토리지를 먼저 등록하지 않으면 백업이 실패하거나 빈 상태로 끝납니다 (용어 사전 참고).
  • 컨트롤 플레인 백업과 Velero 백업 혼동: 두 K8s 백업은 보호하는 대상이 다릅니다. 컨트롤 플레인 백업은 클러스터 상태(etcd)+인증서(PKI)를, Velero는 워크로드+PV 데이터를 다룹니다. 하나만 있으면 복구 시 빠진 부분이 생기므로, 운영 클러스터는 두 가지를 함께 운영하는 것을 권장합니다.
  • 복원 아이콘을 찾지 못함: 복구 절차는 별도 메뉴가 아닌 [백업 관리] 페이지의 백업 목록 행에서 복원 아이콘을 클릭하여 진입합니다. 메뉴 영역에는 복구 항목이 없습니다. 백업 목록에서 대상 백업 행을 찾아 행 오른쪽의 아이콘을 확인하세요.

다음에 할 일​

백업 체계를 갖추는 작업은 한 번에 끝나지 않습니다. 다음 순서로 진행하면 누락 없이 정착시킬 수 있습니다.

  1. Velero/오브젝트 스토리지 설치 - Velero와 외부 저장소를 먼저 준비합니다 (K8s 백업의 전제).
  2. 컨트롤 플레인 백업 - 클러스터 상태(etcd)+PKI 백업을 정기 일정으로 등록합니다.
  3. Docker 백업 - Docker/Podman 호스트의 컨테이너 볼륨과 설정을 백업합니다.
  4. 복구 절차 학습 - 실제 장애 전에 복구 시나리오를 한 번 리허설해 둡니다.