본문으로 건너뛰기

복구

백업 데이터를 사용하여 시스템을 이전 상태로 복원하는 방법을 안내합니다.

복구는 언제 필요한가요?
  • 시스템 장애: 서버 장애, 디스크 손상 등으로 데이터가 손실된 경우
  • 실수로 인한 삭제: 중요한 리소스나 데이터를 잘못 삭제한 경우
  • 업데이트 롤백: 문제가 있는 업데이트를 이전 상태로 되돌리는 경우
  • 환경 복제: 백업을 사용하여 동일한 환경을 다른 곳에 구성하는 경우

복구 유형

KIWI에서는 환경에 따라 두 가지 복구 방법을 제공합니다.

  • etcd 복구: Kubernetes 클러스터를 대상으로 합니다. 클러스터 전체 상태를 복원하며, 수 분에서 수십 분이 소요됩니다.
  • Docker 복구: Docker 환경을 대상으로 합니다. 컨테이너, 볼륨, 이미지를 복원하며, 항목에 따라 소요 시간이 다릅니다.
복구 전 주의사항
  • 복구 작업은 현재 데이터를 덮어씁니다. 필요하다면 복구 전에 현재 상태를 백업하세요.
  • 가능하면 서비스 사용량이 적은 시간에 복구를 진행하세요.
  • 운영 환경에서는 테스트 환경에서 먼저 복구를 검증한 후 진행하세요.

etcd 복구

Kubernetes 클러스터를 etcd snapshot에서 복원합니다.

Step 1: 백업 선택

  1. 좌측 메뉴에서 **[백업 관리]**를 클릭합니다 .
  2. 백업 목록에서 복원할 etcd 백업을 찾습니다 .
  3. 해당 백업을 클릭하여 선택합니다 .
복원 시점 선택하기

여러 백업이 있다면, 문제가 발생하기 직전 시점의 백업을 선택하세요. 너무 오래된 백업을 선택하면 그 이후의 변경 사항이 모두 손실됩니다.

Step 2: 복원 대상 확인

복원 전에 반드시 다음 정보를 확인합니다.

  • 백업 일시: 이 시점으로 클러스터가 되돌아갑니다 .
  • 클러스터: 복원될 대상 클러스터가 맞는지 확인합니다 .
  • 상태: 백업 파일이 "정상" 상태인지 확인합니다 .
백업 상태가 "손상됨"으로 표시되면?

손상된 백업은 복원에 사용할 수 없습니다. 다른 정상적인 백업을 선택하거나, 백업 파일의 무결성을 다시 확인하세요.

Step 3: 복원 실행

  1. 복원 버튼을 클릭합니다 .
  2. 확인 대화상자에서 복원 시작을 클릭합니다 .
  3. 복원 진행 상황이 화면에 표시됩니다 .
중요: 클러스터 중단

etcd 복원 중에는 클러스터가 일시적으로 중단됩니다. 이 시간 동안 Pod 스케줄링, API 호출 등 모든 클러스터 작업이 불가능합니다. 복원 시간은 데이터 크기에 따라 수 분에서 수십 분이 소요될 수 있습니다.

Step 4: 클러스터 상태 확인

복원이 완료되면 클러스터가 정상적으로 작동하는지 확인합니다.

# 노드 상태 확인 - 모든 노드가 Ready 상태여야 합니다
kubectl get nodes

# 모든 네임스페이스의 Pod 상태 확인
kubectl get pods --all-namespaces

# 시스템 Pod 상태 확인
kubectl get pods -n kube-system
복원 후 체크리스트
  1. 모든 노드가 Ready 상태인가요?
  2. kube-system Pod들이 모두 Running 상태인가요?
  3. 애플리케이션 Pod들이 정상적으로 실행 중인가요?
  4. 서비스에 정상적으로 접근할 수 있나요?

Docker 복구

Docker 볼륨, 이미지, 컨테이너를 백업에서 복원합니다.

볼륨 복구

애플리케이션 데이터가 저장된 볼륨을 복원합니다.

Step 1: 백업 선택

  1. [백업 관리] 페이지에서 Docker 백업 탭을 클릭합니다 .
  2. 복원할 볼륨이 포함된 백업을 선택합니다 .

Step 2: 복원 항목 선택

  1. 볼륨: 복원할 볼륨을 선택합니다 .
  2. 경로: 복원할 위치를 지정합니다 .
    • 원래 위치: 기존 볼륨에 덮어쓰기
    • 새 위치: 다른 이름으로 복원 (기존 데이터 보존)
안전한 복원 방법

운영 중인 볼륨을 복원할 때는 먼저 새 위치에 복원하여 데이터를 확인한 후, 검증이 완료되면 원래 위치로 복사하는 것이 안전합니다.

Step 3: 복원 실행

  1. 복원 버튼을 클릭합니다 .
  2. 복원 진행 상황을 확인합니다 .

이미지 복구

백업된 Docker 이미지를 복원합니다.

Step 1: 이미지 백업 선택

  1. [백업 관리] 페이지에서 이미지 백업을 선택합니다 .
  2. 복원할 이미지 tar 파일을 선택합니다 .

Step 2: 이미지 로드

KIWI가 내부적으로 다음 명령을 실행하여 이미지를 복원합니다:

# KIWI 내부 동작
docker load -i image_backup.tar
이미지 태그 확인

복원된 이미지는 백업 시점의 태그를 그대로 유지합니다. 동일한 태그의 이미지가 이미 존재하면 덮어쓰기됩니다.


복구 검증

복구 후에는 반드시 시스템이 정상적으로 작동하는지 검증합니다.

검증 체크리스트

  • 서비스 상태: Pod/컨테이너 상태를 확인합니다. Running 상태여야 정상입니다.
  • 데이터 무결성: 애플리케이션 데이터를 확인합니다. 백업 시점의 데이터가 존재해야 합니다.
  • 네트워크: 서비스 접근을 테스트합니다. 정상 응답이 와야 합니다.
  • 로그: 애플리케이션 로그를 확인합니다. 오류가 없어야 합니다.
복구 검증 자동화

중요한 시스템에서는 복구 후 자동으로 헬스체크를 수행하는 스크립트를 준비해두면 검증 시간을 단축할 수 있습니다.


문제 해결

복원 실패: "snapshot file corrupted"

restore failed: snapshot file corrupted

왜 발생하나요?

백업 파일이 손상되어 복원에 사용할 수 없습니다. 백업 생성 중 디스크 오류가 발생했거나, 저장 후 파일이 손상되었을 수 있습니다.

해결 방법

  1. 다른 백업 파일 사용: 다른 날짜의 정상적인 백업을 선택하세요
  2. 백업 파일 무결성 검사: 백업 상세 정보에서 체크섬을 확인하세요
  3. 원본 백업 복사본 확인: 백업이 다른 위치에 복제되어 있다면 해당 파일을 사용하세요

데이터 불일치

복원 후 예상과 다른 데이터가 표시되거나, 애플리케이션이 오류를 발생시키는 경우입니다.

왜 발생하나요?

  • 백업 시점과 현재 시점 사이에 데이터 스키마가 변경되었습니다 .
  • 백업에 포함되지 않은 외부 시스템과의 연동 데이터가 불일치합니다 .

확인 및 해결 방법

  1. 백업 시점 확인: 복원된 데이터가 백업 시점의 상태인지 확인하세요
  2. 스키마 호환성 확인: 애플리케이션 버전과 데이터 스키마가 호환되는지 확인하세요
  3. 외부 시스템 동기화: 데이터베이스 등 외부 시스템도 함께 복원이 필요한지 확인하세요
부분 복원 주의

시스템의 일부만 복원하면 데이터 불일치가 발생할 수 있습니다. 가능하면 관련된 모든 구성요소를 함께 복원하세요.