본문으로 건너뛰기

etcd 백업

Kubernetes 클러스터의 핵심 데이터베이스인 etcd를 안전하게 백업하는 방법을 안내합니다.

etcd란 무엇인가요?

etcd는 Kubernetes 클러스터의 "두뇌"와 같은 역할을 합니다. 클러스터에서 실행 중인 모든 Pod, Service, ConfigMap, Secret 등의 정보가 etcd에 저장됩니다. etcd가 손상되면 클러스터 전체를 재구성해야 할 수도 있으므로, 정기적인 백업이 매우 중요합니다.


etcd에 저장되는 데이터

etcd snapshot을 통해 다음과 같은 Kubernetes 리소스를 모두 백업할 수 있습니다.

  • Pod/Deployment: 워크로드 정의 및 실행 상태를 저장합니다. 손실 시 애플리케이션 재배포가 필요합니다.
  • ConfigMap/Secret: 환경 설정과 인증 정보를 저장합니다. 손실 시 설정 재구성이 필요합니다.
  • Service/Ingress: 네트워크 라우팅 설정을 저장합니다. 손실 시 서비스에 접근할 수 없습니다.
  • PV/PVC: 스토리지 바인딩 정보를 저장합니다. 손실 시 데이터 볼륨 연결이 끊깁니다.
etcd 백업의 한계

etcd 백업은 Kubernetes 리소스의 정의(definition)만 저장합니다. PersistentVolume에 저장된 실제 데이터는 별도로 백업해야 합니다. 완전한 복구를 위해서는 etcd 백업과 함께 Velero를 사용한 볼륨 백업을 병행하세요.


백업 절차

KIWI의 [백업 관리] 페이지에서 간편하게 etcd snapshot을 생성할 수 있습니다.

Step 1: 백업 관리 페이지 이동

  1. 좌측 메뉴에서 **[백업 관리]**를 클릭합니다 .
  2. 상단의 백업 생성 버튼을 클릭합니다 .

Step 2: 백업 대상 선택

  1. 클러스터: 백업할 Kubernetes 클러스터를 선택합니다 .
  2. 백업 유형: etcd 스냅샷을 선택합니다 .
클러스터가 보이지 않나요?

[런타임 환경] 페이지에서 Kubernetes 클러스터가 정상적으로 등록되어 있는지 확인하세요. 클러스터 연결 상태가 "연결됨"이어야 백업이 가능합니다.

Step 3: 백업 옵션 설정

각 옵션을 상황에 맞게 설정합니다.

  • 압축 (권장: 활성화)

    • snapshot 파일을 압축하여 저장 공간을 절약합니다 .
    • 압축 시 백업 파일 크기가 약 50% 이상 감소합니다 .
  • 암호화 (권장: 활성화)

    • 백업 파일을 암호화하여 보안을 강화합니다 .
    • Secret 등 민감한 정보가 포함되어 있으므로 활성화를 권장합니다 .
  • 보관 기간 (권장: 30일)

    • 설정한 기간이 지나면 백업이 자동으로 삭제됩니다 .
    • 저장 공간과 복구 필요성을 고려하여 설정하세요

Step 4: 백업 실행 및 확인

  1. 설정을 확인한 후 백업 시작 버튼을 클릭합니다 .
  2. 백업 진행 상황이 화면에 표시됩니다 .
  3. 완료 시 백업 목록에서 상태를 확인합니다 .
    • 성공: snapshot 파일이 정상적으로 생성되었습니다 .
    • 실패: 에러 로그를 확인하여 원인을 파악하세요
백업 후 검증하기

중요한 백업은 생성 후 반드시 백업 파일 검증 기능을 실행하여 snapshot이 정상인지 확인하세요. 손상된 백업 파일은 복구 시점에 사용할 수 없습니다.


자동 백업 설정

매일 수동으로 백업하는 것은 잊기 쉽습니다. 자동 백업 스케줄을 설정하여 안정적인 백업 체계를 구축하세요.

스케줄 옵션 설명

  • 주기: 백업 실행 시간을 Cron 표현식으로 설정합니다 .

    • 예: 0 2 * * * - 매일 새벽 2시에 실행
    • 예: 0 3 * * 0 - 매주 일요일 새벽 3시에 실행
  • 보관 수: 유지할 최대 백업 개수를 설정합니다 .

    • 예: 7 - 최근 7개의 백업만 유지하고 오래된 것은 자동 삭제
권장 백업 스케줄
  • 개발 환경: 매일 1회 백업, 3개 보관 (최근 3일치 복구 가능)
  • 스테이징 환경: 매일 1회 백업, 7개 보관 (최근 1주일치 복구 가능)
  • 운영 환경: 매일 1회 백업, 14개 보관 (최근 2주일치 복구 가능)

문제 해결

백업 실패: "etcdctl snapshot save failed"

etcdctl snapshot save failed

왜 발생하나요?

etcd 클러스터에 연결하거나 snapshot을 저장하는 과정에서 문제가 발생했습니다.

확인 및 해결 방법

  1. etcd 클러스터 상태 확인

    • etcd가 정상적으로 실행 중인지 확인하세요
    • 클러스터의 모든 etcd 멤버가 건강한 상태인지 점검하세요
  2. 인증서 유효성 확인

    • etcd 연결에 사용되는 인증서가 만료되지 않았는지 확인하세요
    • 인증서 경로가 올바른지 점검하세요
  3. 디스크 공간 확인

    • snapshot을 저장할 충분한 디스크 공간이 있는지 확인하세요
    • 최소 현재 etcd 데이터 크기의 2배 이상 여유 공간을 확보하세요

스냅샷 손상: "snapshot file corrupted"

snapshot file corrupted

왜 발생하나요?

백업 중 디스크 오류가 발생했거나, 저장된 백업 파일이 손상되었습니다.

해결 방법

  1. 이전 백업 파일 사용: 다른 날짜의 정상적인 백업을 사용하세요
  2. 다른 etcd 멤버에서 백업 시도: 고가용성 클러스터에서는 다른 멤버에서 백업을 생성할 수 있습니다 .
  3. 저장소 점검: 백업 저장소의 디스크 상태를 점검하세요
백업 손상 예방하기
  • 자동 백업을 설정하여 여러 복구 시점을 확보하세요
  • 백업 완료 후 자동 검증 옵션을 활성화하세요
  • 중요한 환경에서는 백업을 다른 위치에 복제하세요