본문으로 건너뛰기

컨트롤 플레인 백업

Kubernetes 클러스터의 핵심 데이터인 etcd 스냅샷과 PKI 인증서를 단일 번들로 오브젝트 스토리지에 백업하는 방법을 안내합니다.

컨트롤 플레인 백업이란? — 컨트롤 플레인 백업은 Velero가 처리하지 않는 클러스터 자체의 재해복구(DR)를 위한 기능입니다. etcd는 클러스터의 "두뇌"로 모든 리소스 정보를 담고 있고, PKI 인증서(/etc/kubernetes/pki)는 클러스터 통신을 보호합니다. 두 가지를 함께 백업해야 클러스터 전체를 복구할 수 있습니다.


컨트롤 플레인 백업에 저장되는 데이터​

  • etcd 스냅샷: Pod, Deployment, Service, ConfigMap, Secret 등 모든 K8s 리소스 정의를 포함합니다.
  • PKI 인증서 (/etc/kubernetes/pki): 클러스터 통신에 사용되는 CA 인증서, API 서버 인증서, etcd 인증서 등 전체 인증서 묶음을 포함합니다.
컨트롤 플레인 백업의 범위

컨트롤 플레인 백업은 K8s 리소스 정의와 인증서를 저장합니다. PersistentVolume에 저장된 실제 애플리케이션 데이터는 별도로 Velero 백업을 사용해 보호하세요.

etcd 암호화 키는 이 백업에 포함되지 않습니다 — 반드시 별도 백업하세요

etcd at-rest 암호화(EncryptionConfiguration)를 사용 중이라면 스냅샷 안의 Secret은 암호문으로 저장됩니다. 복호화 키(/etc/kubernetes/enc/encryption-config.yaml)는 이 백업 번들에 포함되지 않으므로, 키를 별도의 안전한 곳에 따로 백업해야 합니다. 키를 잃으면 스냅샷을 복원해도 Secret을 영구히 복구할 수 없습니다.

⚠️ 키는 etcd 스냅샷과 같은 저장소·같은 번들에 두지 마세요. 데이터와 키가 함께 새거나 함께 소실되면 암호화의 의미가 사라집니다.


백업 생성 절차​

컨트롤 플레인 백업은 백업 마법사로 생성합니다. 연결 방식 선택 → SSH 자격증명 입력 → etcd 도구 점검 → 백업 설정 순으로 진행됩니다.

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

  1. 좌측 메뉴에서 [백업 관리]를 클릭합니다.
  2. 백업 목록 탭에서 K8s 백업 세그먼트(Segmented) 컨트롤을 컨트롤플레인으로 전환합니다. (Velero / 컨트롤플레인 중 선택)
  3. 백업 생성 버튼을 클릭합니다.

클러스터가 보이지 않나요? — [런타임 환경] 페이지에서 Kubernetes 클러스터가 정상적으로 등록되어 있는지 확인하세요.

Step 2: 연결 방식 선택​

마스터 노드에 직접 SSH로 접속할지, VPN을 경유할지 선택합니다. 사내망에서 마스터에 직접 접근할 수 없다면 활성 VPN 세션을 통해 접속할 수 있습니다.

Step 3: 마스터 노드 SSH 자격증명 입력​

백업은 마스터 노드에 직접 SSH로 접속하여 실행됩니다. 게이트웨이를 경유하는 다중 홉 SSH를 지원합니다.

  • SSH 접속 정보: 마스터 노드(및 경유 게이트웨이)의 호스트/포트/사용자명/비밀번호
  • sudo 비밀번호: etcd 스냅샷 생성에 필요한 sudo 권한 비밀번호

SSH 자격증명 보관 — 입력한 SSH 접속 자격증명(비밀번호/개인 키)은 KIOPS 서버에 암호화(AES-256-GCM)되어 저장되며, 이후 같은 마스터 노드 작업(복원 등)에서 자동으로 재사용됩니다. 브라우저에는 평문이 저장되지 않습니다. (sudo 비밀번호 등 일부 값은 보안상 작업 시점에 다시 입력을 요청할 수 있습니다.)

Step 4: etcd 백업 도구 점검 및 설치​

백업 설정 단계에 진입하면 마스터 노드에 etcdctl/etcdutl 설치 여부를 자동으로 점검합니다.

  • 도구가 없으면 "etcd 백업 도구가 설치되어 있지 않습니다" 안내와 함께 백업 도구 설치 버튼이 표시됩니다.
  • 버튼을 클릭하면 클러스터의 etcd 버전을 감지하여 그에 맞는 도구를 설치합니다. 설치가 끝나기 전에는 백업 생성 버튼이 비활성화됩니다.

도구 점검이 필요한 이유 — 컨트롤 플레인 백업/복원은 마스터 노드의 etcdctl/etcdutl을 사용합니다. 외부 클러스터 등 도구가 없는 환경에서도 별도 수동 설치 없이 이 단계에서 자동으로 준비됩니다.

Step 5: 백업 설정 및 실행​

  1. 백업 이름(기본값 cp-YYYYMMDDHHmmss 자동 생성)과 백업 저장소를 선택합니다.
  2. 백업 생성 버튼을 클릭합니다.
  3. 백엔드가 다음 작업을 자동으로 수행합니다:
    • 마스터 노드 SSH 접속
    • etcdctl snapshot save 실행
    • /etc/kubernetes/pki 디렉터리 tar.gz 압축
    • 오브젝트 스토리지 업로드 (controlplane/<백업이름>/ 경로)
    • 임시 파일 정리
  4. 완료 후 컨트롤 플레인 백업 목록에서 상태가 성공(completed)으로 변경되면 완료입니다.

컨트롤 플레인 백업 목록 컬럼​

컬럼설명
백업 이름생성된 백업 식별자
크기백업 번들 파일 크기
생성일생성 일시
액션복원과 삭제 아이콘 제공

Velero 백업과의 차이점​

항목컨트롤 플레인 백업Velero 백업
보호 대상클러스터 구조 (etcd + PKI)애플리케이션 워크로드 + PV 데이터
접속 방식마스터 노드 SSH 직접Velero Agent (클러스터 내부)
복원 범위클러스터 전체 재구성네임스페이스/리소스 단위 선택 복원
권장 사용클러스터 자체 DR서비스별 백업 및 마이그레이션

권장 운영 전략 — 운영 환경에서는 컨트롤 플레인 백업 + Velero 백업을 함께 운영하세요. 컨트롤 플레인 백업은 클러스터 복구의 토대를, Velero는 애플리케이션 데이터를 각각 보호합니다.


복구 흐름 미리보기​

컨트롤 플레인 백업 목록에서 복원 아이콘을 클릭하면 복구 마법사가 열립니다. 백업 생성과 동일하게 연결 방식 선택 → SSH 자격증명 → 확인 단계로 진행됩니다.

  • 연결 방식 선택: 직접 SSH 또는 VPN 경유를 선택합니다.
  • 마스터 노드 SSH 자격증명 재입력: 복원 시에도 SSH 접속 정보(다중 홉 지원)가 필요합니다.
  • sudo 비밀번호 입력: etcd 정지/복원 및 PKI 적용을 위해 sudo 비밀번호를 입력합니다.
  • 확인 텍스트 입력: 확인을 위해 백업 이름을 정확히 입력해야 복원 버튼이 활성화됩니다.

자세한 복원 절차는 복구 가이드를 참고하세요.


문제 해결​

백업 실패: "etcdctl snapshot save failed"​

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

확인 및 해결 방법

  1. SSH 자격증명 확인: 마스터 노드 SSH 접속 정보가 올바른지 확인합니다.
  2. sudo 권한 확인: 입력한 계정이 sudo 권한을 가지고 있는지 확인합니다.
  3. etcd 상태 확인: 모든 etcd 멤버가 건강한 상태인지 점검합니다.
  4. 디스크 공간 확인: 마스터 노드에 충분한 임시 저장 공간이 있는지 확인합니다.

백업 실패: 오브젝트 스토리지 업로드 오류​

확인 및 해결 방법

  1. 저장소 등록 확인: [백업 관리] > 저장소 관리 탭에서 오브젝트 스토리지가 정상 등록되어 있는지 확인합니다.
  2. 자격증명 재검증: Access Key, Secret Key, 버킷명이 올바른지 확인합니다.
  3. 네트워크 연결 확인: KIOPS 서버에서 오브젝트 스토리지 엔드포인트에 접근 가능한지 확인합니다.

백업 손상 예방 — 정기적으로 컨트롤 플레인 백업을 생성하여 복수의 복구 시점을 확보하세요. 중요한 클러스터 변경 작업 전에는 반드시 수동 백업을 먼저 생성하세요.