본문으로 건너뛰기

백업 관리

경로: /backup

Velero, 컨트롤 플레인, Docker/Podman 컨테이너의 백업과 복구를 한 곳에서 관리하는 페이지입니다. 접근할 수 없다면 기관 관리자에게 권한을 요청하세요.

백업 관리 화면

설치형 Basic 화면 — 컨트롤플레인(etcd) 구분이 없고 설치 버튼도 없습니다
설치형 Basic 화면

무엇을 하는 곳인가​

  • 백업 생성·관리: 런타임 환경에 맞는 백업을 만들고 목록에서 조회·삭제합니다.
  • 외부 스토리지 연동: S3 호환 오브젝트 스토리지에 백업을 원격 보관합니다.
  • 복구: 이전 백업으로 시스템을 특정 시점으로 되돌립니다.

시스템 장애·디스크 손상 복구, 잘못된 변경 되돌리기, 환경 이전, 감사/규정 준수 목적에 사용합니다. 백업 상태 표기는 상태 사전을 참고하세요.

백업의 황금률 (3-2-1) — 최소 3개 사본을 2가지 다른 미디어에 저장하고, 그 중 1개는 원격 위치에 보관하세요.


핵심 요소​

백업 유형 (대상별로 다름)​

  • Velero 백업: Kubernetes 클러스터 대상. 워크로드(Deployment, Service 등)와 PV 데이터를 외부 오브젝트 스토리지에 저장합니다. 세밀한 네임스페이스·리소스 단위 백업/복원에 사용.
  • 컨트롤 플레인 백업: Kubernetes 마스터 노드 대상. etcd 스냅샷과 PKI 인증서(/etc/kubernetes/pki)를 하나의 prefix 아래 두 객체(etcd 스냅샷 + PKI 아카이브)로 오브젝트 스토리지에 백업합니다. 클러스터 전체 재구성 수준의 DR(재해복구)에 사용.
  • Docker/Podman 백업: Docker/Podman 호스트 대상. 볼륨·컨테이너 설정·Compose 파일을 백업 유형으로 선택합니다.

Velero vs 컨트롤 플레인 — Velero는 애플리케이션 워크로드와 영구 볼륨 데이터를, 컨트롤 플레인은 클러스터 자체(etcd 상태 + PKI 인증서)를 보호합니다. 완전한 DR을 위해 둘을 함께 운영하는 것을 권장합니다.

3개 탭과 목록​

백업 목록(생성·조회·삭제·복원) · 저장소 관리(외부 스토리지 연동, 조회 권한 시 표시) · 복구 이력. 통계는 별도 탭이 아니라 상단 헤더 카드로 제공됩니다. 백업 목록은 이름·유형·파일 크기·생성 시간·상태·저장소(엔드포인트, 미사용 시 -)를 표시하고 각 항목에 복원·삭제 작업을 제공합니다. 상태 표기는 상태 사전 참고.

런타임에 따라 목록 화면이 다릅니다. Kubernetes는 Velero / 컨트롤플레인 토글로 유형을 전환하고 네임스페이스별로 확인하며, Docker·Podman은 백업 유형(Compose/Full/Volume/Config)과 크기·복구 횟수 컬럼으로 확인합니다.

K8s 백업 목록 (Velero) Docker 백업 목록

백업 이름 규칙​

이름은 화면에만 남는 표시가 아니라 Velero 리소스 이름이자 대상 서버의 디렉터리·파일 이름이 됩니다. 그래서 두 가지 제약이 있습니다.

  • 40자까지입니다. K8s 백업은 이름 뒤에 시각(-HHMMSS)이, 즉시 백업이면 -immediate가 더 붙는데, 목록 조회에 쓰는 레이블이 63바이트에서 잘립니다. 40자를 넘기면 앞부분이 같은 백업끼리 목록에서 구분되지 않습니다.
  • 한글은 쓸 수 없습니다. 영문·숫자와 - _ . 를 쓰세요. 런타임 환경 이름이 한글이면 자동 채움은 그 글자를 빼고 만들고, 남는 글자가 없으면 backup으로 채웁니다.

이름을 비워 두면 대상 이름과 날짜로 자동 생성됩니다(예 my-app-20250821). 자동 생성값도 40자 안에 들도록 앞부분을 줄입니다.

Velero 백업 옵션​

  • 다중 네임스페이스 선택: 체크박스 목록에서 여러 개 선택(전체 선택 토글). Velero --include-namespaces로 전달되어 하나의 백업에 함께 담기며, 첫 네임스페이스를 접두사로 이름이 자동 생성됩니다.
  • 라벨 셀렉터(선택): 특정 라벨을 가진 리소스만 백업합니다.
  • PVC 데이터 포함(기본 활성화): 활성 시 PersistentVolume의 실제 데이터를 File System Backup 방식으로 백업합니다(DB·캐시 등 스테이트풀 워크로드 완전 복구에 필요). 해제 시 매니페스트(YAML)만 백업합니다.

NFS 환경 주의 — NFS 기반 스토리지에서는 PVC 데이터 백업 시 성능 영향이 발생할 수 있습니다. 트래픽이 적은 시간대에 백업하거나 필요에 따라 비활성화하세요.

리소스 종류 단위 필터링(PV/PVC 제외·앱 리소스만 등)은 백업이 아니라 복구 단계에서 선택합니다.

Docker/Podman 백업 유형​

하나의 유형만 선택합니다. 여러 유형을 함께 고를 수는 없습니다.

  • Full: 볼륨 + 설정 + Compose 파일. 가장 완전합니다.
  • 볼륨만: 영구 데이터만 담습니다. 대부분의 경우 가장 중요한 유형입니다.
  • 설정만: 컨테이너 설정만 담습니다.
  • Compose 파일만: docker-compose 정의만 담습니다.

별도의 이미지 유형은 없습니다. 이미지는 Full·설정 유형에 포함되어 복원 시 자동으로 보존됩니다.

지원 스토리지​

오브젝트 스토리지(SeaweedFS) 는 S3 호환이며 자동 설치의 기본 옵션입니다. S3 호환 은 S3 API를 지원하는 스토리지를 가리킵니다.

AWS S3와 NFS 타입은 현재 준비 중입니다. 리전 입력 필드 같은 AWS S3 전용 화면은 아직 없습니다. AWS S3나 그 밖의 S3 호환 스토리지는 오브젝트 스토리지 타입으로 선택한 뒤 엔드포인트·Access Key·Secret Key·버킷을 입력해 등록하세요. 자격증명은 KIOPS 내부에서 암호화 저장되며, 최소 권한 원칙에 따라 백업 전용 계정 사용을 권장합니다.


사용 방법​

Velero 설치 마법사​

백업 마법사는 자동으로 뜨지 않고 별도 시작 버튼도 없습니다. Velero 설치가 필요할 때 [백업 관리]의 Velero 설치하기 버튼으로 Velero 설치 모달이 열립니다. 이 모달의 백업 엔진 설정 단계에서는 Kubernetes 클러스터·백업 저장소(저장소 관리에서 미리 등록)·SSH 접속 노드/정보와, 선택 항목인 백업 경로 prefix(veleroPrefix)를 입력합니다. 백업 대상 선택, 스토리지 유형 선택, 스케줄 설정 단계는 이 마법사에 없습니다.

컨트롤 플레인 백업 생성​

  1. 백업 목록 탭에서 K8s 백업을 컨트롤플레인으로 전환하고 백업 생성을 클릭합니다.
  2. 연결 방식을 선택합니다(직접 SSH 또는 VPN).
  3. SSH 자격증명과 sudo 비밀번호를 입력합니다. 게이트웨이를 거치는 다중 홉도 지원합니다.
  4. etcd 백업 도구 점검 단계가 마스터 노드의 etcdctl·etcdutl을 자동으로 점검합니다. 설치돼 있지 않으면 클러스터 etcd 버전에 맞는 도구를 설치합니다.
  5. 이름(기본값 cp-YYYYMMDDHHmmss)과 저장소를 고르고 백업 생성을 클릭합니다.

이후는 백엔드가 자동으로 처리합니다 — etcd 스냅샷 → PKI 인증서 압축 → 오브젝트 스토리지 업로드 순입니다.

SSH 자격증명 보관 — 입력한 SSH 자격증명은 KIOPS 서버에 암호화(AES-256-GCM) 저장되어 복원 등 이후 작업에 자동 재사용되며, 브라우저에 평문이 저장되지 않습니다. sudo 비밀번호 등 일부 값은 작업 시점에 다시 입력을 요청할 수 있습니다.

Docker/Podman 백업 생성​

백업 목록 탭 → 백업 생성 → 유형(Docker/Podman)·대상 호스트·백업 유형 선택 → 백업 시작.

Docker 백업 생성 화면

외부 스토리지 연동​

저장소 관리 탭에서 스토리지 추가를 클릭합니다. 오브젝트 스토리지 설정(엔드포인트 — 예: http://your-storage-server:8333, Access Key, Secret Key, 버킷 이름)을 입력하고 연결 테스트를 거쳐 저장합니다. 연결 창은 백업 종류(Velero · 컨테이너 등)를 함께 묻습니다. 고를 수 있는 종류가 하나뿐이면 묻지 않고 그대로 넘어갑니다. 저장 위치(BSL) 칸은 Velero를 선택한 경우에만 나타납니다. 저장소 목록에는 그 저장소에 저장된 백업이 함께 표시됩니다.

백업에서 복구​

복구 전 체크리스트: 올바른 시점 백업 확인 · 현재 상태 백업 먼저 생성(되돌리기용) · 서비스 중단 필요 여부 팀 공유 · 관리자 비밀번호 준비.

백업 목록 탭 → 대상 백업의 복구 버튼 → 미리보기에서 복원 내용 확인 → 주의사항 확인 → 복구 시작 → 관리자 비밀번호 입력 → 완료 후 정상 동작 확인.

K8s 복구 화면 Docker 복구 화면

Velero 복구 옵션(복구 설정 단계):

  • 복구할 네임스페이스 선택: 다중 네임스페이스 백업이면 일부만 선택 복구(최소 1개), 단일 네임스페이스 백업은 원본→대상 이름 매핑 가능.
  • 리소스 복원 범위: 전체 리소스 / PV/PVC 제외(기존 스토리지 유지) / 앱 리소스만(Deployment·Service·ConfigMap·Secret 등) / 직접 선택.
  • PVC 데이터 복원: 백업에 PVC 볼륨 데이터가 포함된 경우 표시. 해제 시 K8s 리소스만 복원합니다.
복구는 현재 데이터를 덮어씁니다

복구 전에 반드시 현재 상태를 백업하세요. 문제가 생기면 방금 만든 백업으로 되돌릴 수 있습니다. 대용량 백업/복구는 네트워크에 영향을 줄 수 있으니 트래픽이 적은 시간에 수행하고, 외부 스토리지 자격증명은 정기적으로 로테이션하세요.