컨트롤 플레인 백업
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 백업을 사용해 보호하세요.
백업 생성 절차
Step 1: 백업 관리 페이지 이동
- 좌측 메뉴에서 **[백업 관리]**를 클릭합니다.
- 백업 목록 탭에서 K8s 백업 세그먼트(Segmented) 컨트롤을 컨트롤플레인으로 전환합니다. (Velero / 컨트롤플레인 중 선택)
- 백업 생성 버튼을 클릭합니다.
Step 2: 인프라 및 백업 정보 입력
백업 생성 모달(ControlplaneBackupModal)에서 다음을 설정합니다.
- 인프라 선택: 백업할 Kubernetes 클러스터를 선택합니다. 선택 시 마스터 노드 정보가 자동으로 로드됩니다.
- 백업 이름: 식별용 이름을 입력합니다. 기본값은
cp-YYYYMMDD-HHmmss형식으로 자동 생성됩니다.
[런타임 환경] 페이지에서 Kubernetes 클러스터가 정상적으로 등록되어 있는지 확인하세요.
Step 3: 마스터 노드 SSH 자격증명 입력
백업은 마스터 노드에 직접 SSH로 접속하여 실행됩니다.
- SSH 사용자명: 마스터 노드 SSH 계정
- SSH 비밀번호: 마스터 노드 SSH 비밀번호
- sudo 비밀번호: etcd 스냅샷 생성에 필요한 sudo 권한 비밀번호
입력한 SSH 자격증명은 서버에 저장되지 않습니다. 복원 시에도 다시 입력해야 하므로, 자격증명을 안전한 곳에 보관하세요.
Step 4: 백업 실행 및 확인
- 백업 생성 버튼을 클릭합니다.
- 백엔드가 다음 작업을 자동으로 수행합니다:
- 마스터 노드 SSH 접속
etcdctl snapshot save실행/etc/kubernetes/pki디렉터리 tar.gz 압축- 오브젝트 스토리지 업로드 (
controlplane/<백업이름>/경로) - 임시 파일 정리
- 완료 후 컨트롤 플레인 백업 목록에서 상태가 **성공(completed)**으로 변경되면 완료입니다.
컨트롤 플레인 백업 목록 컬럼
| 컬럼 | 설명 |
|---|---|
| 백업 이름 | 생성된 백업 식별자 |
| 크기 | 백업 번들 파일 크기 |
| 생성일 | 생성 일시 |
| 액션 | 복원과 삭제 아이콘 제공 |
Velero 백업과의 차이점
| 항목 | 컨트롤 플레인 백업 | Velero 백업 |
|---|---|---|
| 보호 대상 | 클러스터 구조 (etcd + PKI) | 애플리케이션 워크로드 + PV 데이터 |
| 접속 방식 | 마스터 노드 SSH 직접 | Velero Agent (클러스터 내부) |
| 복원 범위 | 클러스터 전체 재구성 | 네임스페이스/리소스 단위 선택 복원 |
| 권장 사용 | 클러스터 자체 DR | 서비스별 백업 및 마이그레이션 |
운영 환경에서는 컨트롤 플레인 백업 + Velero 백업을 함께 운영하세요. 컨트롤 플레인 백업은 클러스터 복구의 토대를, Velero는 애플리케이션 데이터를 각각 보호합니다.
복구 흐름 미리보기
컨트롤 플레인 백업 목록에서 복원 아이콘을 클릭하면 ControlplaneRestoreModal이 열립니다.
- 백업 선택: 복원할 컨트롤 플레인 백업을 선택합니다.
- 확인 텍스트 입력: 확인을 위해 백업 이름을 정확히 입력해야 복원 버튼이 활성화됩니다.
- 마스터 노드 SSH 자격증명 재입력: 복원 시에도 SSH 사용자명·비밀번호가 필요합니다.
- sudo 비밀번호 입력: etcd 정지/복원 및 PKI 적용을 위해 sudo 비밀번호를 입력합니다.
자세한 복원 절차는 복구 가이드를 참고하세요.
문제 해결
백업 실패: "etcdctl snapshot save failed"
왜 발생하나요? etcd 클러스터에 연결하거나 스냅샷을 저장하는 과정에서 문제가 발생했습니다.
확인 및 해결 방법
- SSH 자격증명 확인: 마스터 노드 SSH 접속 정보가 올바른지 확인합니다.
- sudo 권한 확인: 입력한 계정이 sudo 권한을 가지고 있는지 확인합니다.
- etcd 상태 확인: 모든 etcd 멤버가 건강한 상태인지 점검합니다.
- 디스크 공간 확인: 마스터 노드에 충분한 임시 저장 공간이 있는지 확인합니다.
백업 실패: 오브젝트 스토리지 업로드 오류
확인 및 해결 방법
- 저장소 등록 확인: [백업 관리] > 저장소 관리 탭에서 오브젝트 스토리지가 정상 등록되어 있는지 확인합니다.
- 자격증명 재검증: Access Key, Secret Key, 버킷명이 올바른지 확인합니다.
- 네트워크 연결 확인: KIOPS 서버에서 오브젝트 스토리지 엔드포인트에 접근 가능한지 확인합니다.
정기적으로 컨트롤 플레인 백업을 생성하여 복수의 복구 시점을 확보하세요. 중요한 클러스터 변경 작업 전에는 반드시 수동 백업을 먼저 생성하세요.