본문 바로가기
B2B IT 보안

쿠버네티스(K8s) 백업 완벽 가이드: 기존 VM 백업이 통하지 않는 이유

by 에디터 노드 2026. 6. 29.
반응형

많은 조직이 쿠버네티스의 고가용성(HA) 기능을 재해복구(DR)와 동일하게 생각하지만, 두 개념은 목적과 적용 범위가 다릅니다. 쿠버네티스는 노드 장애나 Pod 장애를 자동으로 복구할 수 있지만, 클러스터 전체 장애나 리전 장애, 데이터 손실까지 해결해 주지는 않습니다.

 

또한 기존 VM 중심의 백업 방식은 Persistent Volume(PV), etcd 메타데이터, Kubernetes 리소스 정의와 같은 클러스터 정보를 충분히 보호하지 못할 수 있습니다.

 

VM 백업과 Kubernetes 백업의 차이점을 비교하고, 컨테이너 환경에 적합한 백업 및 재해복구 아키텍처를 실무 관점에서 살펴보겠습니다.

[연재] [클라우드 네이티브 생존 가이드] 쿠버네티스(K8s) & MSA 재해복구 전략

쿠버네티스(K8s) 백업 완벽 가이드: 기존 VM 백업이 통하지 않는 이유

최근 엔터프라이즈 IT 환경의 가장 거대한 패러다임 변화는 단연 모놀리식(Monolithic) 아키텍처에서 마이크로서비스 아키텍처(MSA)로의 전환, 그리고 이를 뒷받침하는 쿠버네티스(Kubernetes, K8s)의 폭발적인 도입입니다.

 

글로벌 IT 리서치 기관 Gartner(가트너)의 보고서에 따르면, 2027년까지 전 세계 글로벌 기업의 90% 이상이 컨테이너화된 애플리케이션을 프로덕션 환경에서 운영할 것으로 전망됩니다.

 

하지만 이 눈부신 혁신의 이면에는 매우 치명적인 오해가 숨어 있습니다.

많은 IT 관리자들이 "쿠버네티스는 알아서 파드(Pod)를 재시작하고 복구해 주니까, 재해복구(DR)나 백업 시스템을 굳이 복잡하게 구성할 필요가 없다"고 착각하는 것입니다.

 

이는 '고가용성(High Availability)'과 '재해복구(DR)'를 철저히 혼동한 결과입니다.

 

랜섬웨어가 클러스터 스토리지를 감염시키거나, 관리자의 실수로 네임스페이스(Namespace) 전체가 삭제되었을 때, 쿠버네티스의 자동 복구 기능은 아무런 도움이 되지 않습니다.

 

오늘은 DevOps 엔지니어와 IT 인프라 관리자를 위해, 왜 기존의 강력했던 가상머신(VM) 기반 백업 솔루션들이 컨테이너 환경에서는 무용지물이 되는지 그 본질적인 이유를 파헤치고, 클라우드 네이티브(Cloud-Native) 백업의 필수 개념을 완벽하게 가이드해 드립니다.


 

1. 치명적인 오해: 고가용성(HA)은 재해복구(DR)가 아니다

쿠버네티스를 처음 도입하는 부서에서 가장 흔히 겪는 착각입니다.

K8s의 '레플리카셋(ReplicaSet)'이나 '오토스케일링' 기능은 애플리케이션 노드 하나가 죽었을 때 다른 노드에 똑같은 앱을 띄워 서비스 중단을 막아주는 고가용성(HA) 기능일 뿐입니다.

 

만약 해커가 클러스터에 침투하여 데이터베이스 볼륨(DB Volume)을 삭제해 버린다면 어떻게 될까요?

 

쿠버네티스는 충실하게 '데이터가 지워진 빈 상태의 컨테이너'를 다시 띄워줄 뿐입니다. 데이터 오염, 랜섬웨어 감염, 관리자의 실수(휴먼 에러), 혹은 클러스터 전체의 물리적 붕괴 상황에서는 K8s 자체 기능이 개입할 여지가 전혀 없습니다.

 

오직 안전한 원격지에 보관된 '별도의 시점 백업(Snapshot)'만이 비즈니스를 구원할 수 있습니다.


2. 기존 가상머신(VM) 백업이 컨테이너에서 통하지 않는 3가지 이유

수십억 원을 주고 도입한 엔터프라이즈급 VM 백업 솔루션을 쿠버네티스 워커 노드(Worker Node)에 연결해보면 곧바로

재앙이 시작됩니다. 그 이유는 아키텍처의 철학 자체가 다르기 때문입니다.

① 동적이고 일회성인 환경 (Ephemeral Nature)

가상머신(VM)은 한 번 생성되면 고정된 IP와 MAC 주소를 가지고 수개월에서 수년간 살아있습니다.

기존 백업은 이 고정된 타겟을 식별하여 주기적으로 에이전트(Agent)가 데이터를 끌어옵니다.


반면, 쿠버네티스의 파드(Pod)는 트래픽에 따라 하루에도 수백 번씩 생겨났다 사라지며 노드를 이리저리 옮겨 다닙니다.

IP도 계속 바뀝니다.

에이전트 기반의 레거시 백업 솔루션은 "어떤 파드를 백업해야 할지" 대상을 쫓아갈 수 없습니다.

② 애플리케이션 경계의 붕괴 (Application Boundary)

VM 시대에는 '웹 서버 1대 = 웹 애플리케이션'이라는 공식이 성립했습니다.

서버 통째로 이미지를 뜨면 백업이 완료되었습니다.


하지만 MSA 환경에서는 하나의 서비스 계정 관리 애플리케이션이 수십 개의 흩어진 마이크로서비스(파드, 시크릿, 컨피그맵, 서비스 계정 등)로 조각나 있습니다.

VM 노드 하나를 이미지 통째로 뜬다고 해서 하나의 애플리케이션이 온전히 백업되는 것이 아닙니다.

K8s에서의 백업은 '노드' 단위가 아니라 '네임스페이스(Namespace)나 라벨(Label)' 단위의 논리적 묶음이어야 합니다.

③ 상태 저장 볼륨(Persistent Volume)의 분리 특성

컨테이너는 기본적으로 무상태(Stateless)를 지향합니다.

데이터를 영구적으로 보존하기 위해 K8s는 외부 스토리지(AWS EBS, NFS 등)를 끌어와 Persistent Volume (PV) 형태로 연결합니다.

기존 OS 백업 솔루션은 이 추상화된 K8s의 스토리지 마운트 개념을 인지하지 못하여 껍데기만 백업하고 정작 중요한 데이터베이스 알맹이는 누락시키는 치명적인 오류를 발생시킵니다.


3. 성공적인 K8s DR을 위해 반드시 백업해야 할 3대 요소

그렇다면 클라우드 네이티브 전용 도구를 사용해 구체적으로 '무엇'을 백업해야 할까요? 크게 3가지 핵심 요소를 동시에, 정합성을 맞추어 백업해야 합니다.

  1. etcd (클러스터의 두뇌): 쿠버네티스 클러스터의 모든 상태, 설정, 선언적 정보가 저장되는 분산 Key-Value 저장소입니다. etcd가 날아가면 워커 노드와 파드가 살아있어도 컨트롤 플레인은 아무런 통제를 할 수 없습니다. 최우선 백업 대상입니다.
  2. Kubernetes Objects (YAML/JSON Manifests): Deployment, Service, ConfigMap, Secret 등 개발자가 API 서버에 요청한 애플리케이션의 설정 파일들입니다.
  3. Persistent Volumes (PV): 데이터베이스, 로그, 업로드된 이미지 파일 등 애플리케이션이 만들어낸 실제 영구 데이터(상태 보존형 데이터)입니다. 보통 CSI(Container Storage Interface) 드라이버를 통해 스토리지의 네이티브 스냅샷 기능과 연동하여 백업합니다.

4.현장 아키텍트의 현실적 조언

- 실무자 관점 (버전 호환성 문제)

K8s 재해복구 시 실무자들이 가장 자주 겪는 멘붕 상황은 '버전 불일치'입니다.

메인 클러스터(v1.27)의 백업 데이터를 급하게 백업 클러스터(v1.24)로 복원하려고 할 때, K8s API 버전의 deprecation(지원 중단) 이슈로 인해 매니페스트(YAML)가 정상적으로 적용되지 않는 경우가 허다합니다.

DR 환경의 K8s 클러스터 버전과 인프라 구성은 항상 운영 환경과 동일하게 Sync를 맞추어 관리(IaC 활용)해야 합니다.

- 주의사항 및 한계점

클라우드 네이티브 백업 툴은 기본적으로 K8s API를 사용하므로 클러스터 내부의 네트워크 토폴로지에 큰 영향을 받습니다.

특히 CNI(컨테이너 네트워크 인터페이스) 설정이 다르거나 사설 인증서(Private CA)를 빡빡하게 사용하는 폐쇄망 환경에서는 백업 툴과 API 서버 간의 통신이 막혀 스냅샷이 실패하는 한계가 존재하므로 도입 전 철저한 방화벽(Network Policy) 튜닝이 요구됩니다.

* 공식 출처

  • 클라우드 네이티브 컴퓨팅 파운데이션(CNCF)의 데이터 보호 워크그룹(Data Protection Working Group) 백서에 따르면, K8s 환경에서의 데이터 보호는 전통적인 인프라스트럭처 레벨의 백업에서 벗어나,
    애플리케이션 중심(Application-Centric)의 논리적 백업 체계로 전환해야 한다고 권고하고 있습니다.

5. 전용 백업 아키텍처로 진화해야 할 때입니다.

쿠버네티스는 인프라 운영의 자동화와 배포의 극단적인 민첩성을 가져다주었지만,

데이터 보호와 재해복구 관점에서는 완전히 새로운 도전 과제를 던져주었습니다.

과거의 성공 방정식이었던 가상머신(VM) 백업 솔루션을 K8s에 억지로 끼워 맞추는 것은 비즈니스 연속성을 담보로 한 무모한 도박입니다. 이제는 인프라의 변화에 발맞추어, K8s API와 네이티브하게 소통할 수 있는 전용 백업 아키텍처로 진화해야 할 때입니다.

 

다음 [2편]에서는 실무로 들어가, 현재 글로벌 시장에서 K8s 백업의 사실상 표준(De Facto Standard) 오픈소스로 자리 잡은 '벨레로(Velero)'를 활용하여 실제 클러스터 리소스와 볼륨을 어떻게 백업하고 다른 클라우드로 마이그레이션(복구)하는지, 그 구체적인 실무 매뉴얼을 파헤쳐 보겠습니다.


자주 묻는 질문 (Q&A)

Q. 온프레미스 K8s와 AWS EKS 간에 백업 복구가 가능한가요?
A. 네, 가능합니다. 컨테이너 네이티브 백업 툴(Velero 등)은 인프라 종속성을 제거하기 때문에,

온프레미스에서 백업한 애플리케이션 매니페스트와 데이터를 AWS의 EKS나 GCP의 GKE로 그대로 복원(Cross-Cluster Recovery)할 수 있어 멀티 클라우드 DR 전략에 매우 유용합니다.

Q. GitOps(ArgoCD 등)를 쓰고 있어서 소스코드가 다 Git에 있는데 굳이 K8s 백업이 필요한가요?
A. GitOps는 애플리케이션의 '설정(Stateless)'을 복구하는 데는 탁월하지만, 데이터베이스에 쌓인 수백 GB의 '실제 영구 데이터(PV)'나 클러스터 자체의 인증/네트워크 상태까지 복구해주지는 못합니다. 따라서 GitOps 파이프라인과 영구 데이터 단위의 백업(PV Snapshot)은 반드시 상호 보완적으로 결합되어야 합니다.

Q. 기존 백업 벤더(Veeam, Commvault 등) 제품은 K8s를 지원하지 않나요?
A. 레거시 벤더들도 최근 컨테이너 시장의 중요성을 깨닫고 K8s 전용 솔루션을 개발하거나 인수합병(예: Veeam의 Kasten 인수)을 통해 지원하고 있습니다. 따라서 기존 VM 백업 모듈을 K8s에 그대로 쓰는 것이 아니라, 벤더가 제공하는 K8s 전용(Cloud-Native) 모듈을 구매하여 K8s 클러스터 내부에 배포해야 정상적인 백업이 가능합니다.


[클라우드 네이티브 생존] 이어보기


함께 읽으면 좋은 글


728x90
반응형