Velero/오브젝트 스토리지 설치
Kubernetes 클러스터의 백업 체계를 구축하기 위해 오브젝트 스토리지를 외부 저장소로 등록하고, Velero를 클러스터에 설치하는 방법을 안내합니다.
왜 Velero와 오브젝트 스토리지가 필요한가요? — etcd 스냅샷만으로는 Kubernetes 리소스의 정의만 백업됩니다. 실제 애플리케이션 데이터(PersistentVolume에 저장된 데이터)를 함께 백업하려면 Velero가 필요합니다. 오브젝트 스토리지(SeaweedFS)는 이 백업 데이터를 저장하는 S3 호환 스토리지 역할을 합니다.
KIOPS에서의 오브젝트 스토리지 위치 — KIOPS 백업 페이지에서 새 오브젝트 스토리지 자동 설치 또는 기존 저장소 등록을 선택할 수 있습니다. 자동 설치 시 SeaweedFS가 설치되며, AWS S3 등 다른 S3 호환 저장소는 직접 등록할 수 있습니다.
구성요소 이해하기
오브젝트 스토리지 - 외부 저장소
S3 호환 오브젝트 스토리지로, Velero가 생성한 백업 데이터를 저장합니다. KIOPS는 SeaweedFS 자동 설치를 지원하며, AWS S3 등 다른 S3 호환 저장소도 직접 등록할 수 있습니다.
- S3 호환: AWS S3 API와 호환됩니다. 기존 S3 도구를 그대로 사용할 수 있습니다.
- 온프레미스 친화: 외부 클라우드 의존 없이 사내 인프라에 백업 저장소를 구축할 수 있습니다.
- 웹 콘솔: 브라우저 기반 관리 UI를 통해 버킷과 오브젝트를 직접 확인할 수 있습니다.
Velero - 백업 엔진
Velero는 Kubernetes 리소스와 영구 볼륨을 백업·복원하는 오픈소스 도구입니다.
- 클러스터 백업: 전체 또는 선택적 리소스를 백업합니다.
- 재해 복구: 백업에서 클러스터를 복원합니다.
- 마이그레이션: 클러스터 간 워크로드를 이전합니다.
사전 요구사항
설치를 시작하기 전에 다음 조건을 확인하세요.
- Kubernetes 클러스터: KIOPS에 등록되어 있어야 합니다. [런타임 환경] 페이지에서 확인할 수 있습니다.
- 클러스터 관리자 권한: CRD 설치와 RBAC 생성 권한이 필요합니다.
- 오브젝트 스토리지: 자동 설치(SeaweedFS)를 사용하거나, AWS S3 등 S3 호환 저장소를 직접 등록합니다. 직접 등록 시 엔드포인트 URL, Access Key, Secret Key, 버킷명을 미리 확보하세요.
- 마스터 노드 SSH 비밀번호: Velero 설치 단계에서 입력이 필요합니다.
권한이 부족하다면? — [백업 관리] 메뉴가 보이지 않거나 접근이 거부된다면, 기관 관리자에게 권한을 요청하세요.
오브젝트 스토리지 자동 설치
별도로 운영 중인 오브젝트 스토리지가 없다면 KIOPS에서 자동으로 설치할 수 있습니다. [백업 관리] > 저장소 관리 탭에서 새 오브젝트 스토리지 설치 버튼을 클릭하면 모달 제목이 "새 오브젝트 스토리지 설치"인 창이 열립니다.
설치 옵션
- 저장소 이름: 등록할 저장소를 식별할 이름입니다. (설명은 선택 입력)
- 데이터 폴더 경로: 저장소 데이터가 저장될 절대 경로입니다. 필수이며 사전에 생성되어 있어야 합니다.
- Access Key / Secret Key: 저장소 접근 자격증명입니다.
- 버킷 이름: Velero 백업에 사용할 S3 버킷 이름입니다. 기본값:
velero - S3 API 포트: S3 API 엔드포인트 포트입니다. 기본값:
8333 - 설치 대상 서버: 오브젝트 스토리지를 설치할 서버(SSH 접속 경로)를 지정합니다.
자동 설치 구현체 — 자동 설치는 SeaweedFS를 기반으로 동작합니다. SeaweedFS는 S3 호환 API를 제공하는 경량 분산 오브젝트 스토리지입니다.
외부 저장소 등록
KIOPS는 외부 저장소를 3단계로 등록합니다. [백업 관리] > 저장소 관리 탭에서 등록 버튼을 클릭하면 모달이 열립니다.
Step 1 - 기본 정보
- 이름: 저장소를 식별할 이름(예:
object-storage-prod) - 타입: 오브젝트 스토리지 (SeaweedFS / MinIO 등 S3 호환) 선택 (내부값
minio, 기본값)- AWS S3, NFS 타입은 준비 중입니다.
- 설명(선택): 운영 목적 등 메모
Step 2 - 연결 정보
- 엔드포인트: 예)
http://your-storage-server:8333 - Access Key: 오브젝트 스토리지 접근 ID
- Secret Key: 오브젝트 스토리지 비밀 키
- 버킷명: Velero가 사용할 버킷 이름(예:
velero)
Step 3 - 등록 완료
연결 테스트가 성공하면 외부 저장소 목록에 추가됩니다.
Access Key와 Secret Key는 안전한 곳에 별도로 보관하세요. 분실 시 등록된 저장소의 인증을 갱신해야 합니다.
인프라와 외부 저장소 연결
등록한 외부 저장소를 어느 인프라(런타임)에서 사용할지 지정해야 백업 시 선택 가능한 저장소로 표시됩니다.
- 저장소 관리 탭에서 대상 저장소의 연결 관리 아이콘을 클릭합니다.
- 열린 창에서 연결할 인프라(클러스터/호스트)를 선택합니다. 현재 선택 중인 인프라가 자동으로 미리 선택되어 표시되므로, 별도로 다시 고르지 않고 바로 연결할 수 있습니다.
- 저장 후, 해당 인프라의 백업 생성 마법사에서 이 저장소가 선택지로 표시됩니다.
인프라별 분리 사용 — 같은 오브젝트 스토리지를 여러 인프라에 연결하거나, 인프라마다 다른 저장소를 연결할 수 있습니다.
Velero 설치
KIOPS의 Velero 설치는 단일 모달에서 진행됩니다. 다단계 마법사, 버전 선택, 볼륨 스냅샷 옵션, Provider/StorageClass 선택은 제공되지 않습니다.
진입 경로
- 경로 A: 백업 생성 시 Velero가 미설치된 경우 "Velero 미설치" 확인 후 설치 모달이 안내됩니다.
- 경로 B: 인프라 설정 페이지 내 InfraVeleroSetting 상태 영역에서 직접 진입합니다.
설치 단계
- 마스터 노드 자동 탐지: 선택한 클러스터의 마스터 노드를 자동으로 찾아 표시합니다. (
마스터 노드: <서버명>) - SSH 자격증명 입력: 마스터 노드 접속 정보를 입력합니다. 게이트웨이를 경유하는 다중 홉 SSH를 지원하여, 각 홉의 사용자명/비밀번호를 입력합니다.
- 백업 저장소 선택: 위에서 등록한 활성 저장소 중 하나를 선택해 Velero와 연결합니다.
- 설치 실행: Velero 네임스페이스 생성, CRD 설치, BackupStorageLocation 등록까지 자동으로 진행됩니다.
마법사 옵션 안내 — 가이드 이전 버전의 "버전 선택", "볼륨 스냅샷 활성화", "Provider", "Service Type" 같은 옵션은 현재 KIOPS UI에 존재하지 않습니다. 모두 기본값으로 자동 구성됩니다.
설치 상태 확인
설치 진행과 결과는 저장소 관리 탭 하단의 InstallStatusDisplay 영역에서 확인할 수 있습니다.
- Velero Pod 상태
- BackupStorageLocation 상태
- 연결된 외부 저장소 정보
kubectl로도 확인할 수 있습니다.
kubectl get pods -n velero
kubectl get backupstoragelocations -n velero
Velero 백업·복원 기능
설치 이후 백업과 복원 과정에서 활용할 수 있는 주요 기능을 안내합니다.
백업 생성 옵션 (다중 네임스페이스 · PVC 데이터)
Velero 백업은 백업 마법사로 생성합니다. 연결 방식(직접 SSH / VPN) → SSH 접속 정보 → 백업 설정 단계를 거치며, 마지막 백업 설정 모달에서 다음을 지정합니다.
- 다중 네임스페이스 선택: 백업할 네임스페이스를 체크박스 목록에서 여러 개 선택합니다(
전체 선택토글 제공). 선택한 네임스페이스는 Velero--include-namespaces로 함께 백업됩니다. - 라벨 셀렉터(선택): 특정 라벨을 가진 리소스만 백업하도록 셀렉터를 입력할 수 있습니다.
- PVC 데이터 포함(기본: 활성화): PersistentVolume 데이터까지 백업합니다(File System Backup). 해제 시 매니페스트(YAML)만 백업합니다.
- 백업 저장소 선택: 인프라에 연결된 저장소 중 하나를 선택합니다.
리소스 종류 필터는 복구 시 선택 — PV/PVC 제외·앱 리소스만 등 리소스 종류 단위 필터는 백업 단계가 아니라 복구 단계의 리소스 복원 범위에서 선택합니다. 자세한 내용은 복구 가이드를 참고하세요.
백업 크기 자동 기록
Velero 백업이 완료되면 KIOPS가 velero backup describe 출력의 Backup Size 값을 파싱하여 백업 크기를 자동으로 저장합니다. 별도 조회 없이 백업 목록에서 각 백업의 용량을 확인할 수 있어 스토리지 용량 계획에 활용할 수 있습니다.
복구 이력 세그먼트 분리
K8s 복구 이력은 Velero와 컨트롤플레인 두 세그먼트로 나뉘어 표시됩니다. 백업 유형(backup_type)을 기준으로 분리되며, 복구 이력을 명확하게 구분해 확인할 수 있습니다. Velero 복구 이력에는 네임스페이스 필터가 추가로 제공되어 특정 네임스페이스의 복구 기록만 선택하여볼 수 있습니다.
네임스페이스 인식 복원
복원 기록은 원본 백업과 연결됩니다. restores 테이블의 backup_id가 백업 레코드를 참조하므로, 각 복원 항목에서 원본 백업의 유형과 네임스페이스를 함께 확인할 수 있습니다. 이를 통해 어떤 백업으로부터 복원했는지 추적할 수 있습니다.
PVC 데이터 제외 복원
백업에 PVC 볼륨 데이터가 포함된 경우, 복원 시 PVC 데이터 복원 옵션을 선택할 수 있습니다.
- PVC 데이터 복원 (기본: 활성화): 백업된 PVC 볼륨 데이터를 함께 복원합니다.
- 해제 시: 볼륨 데이터를 건너뛰고 K8s 리소스(Deployment, Service 등)만 복원합니다. 메타데이터·구성만 빠르게 복원하고 싶을 때 유용합니다.
옵션 표시 조건 — PVC 데이터 복원 옵션은 백업에 PVC 데이터가 포함된 경우에만 복원 모달에 표시됩니다.
문제 해결
외부 저장소 연결 실패
- 연결 테스트 실패: 엔드포인트 URL, Access Key, Secret Key, 버킷명을 다시 확인하세요. 사내망에서 오브젝트 스토리지에 직접 접근할 수 없는 경우, 활성 VPN 세션을 사용하면 백업 작업의 SSH 실행이 자동으로 해당 터널을 경유합니다. 등록 모달에는 별도의 SSH 터널링 옵션이 없습니다.
- 버킷 미존재: 오브젝트 스토리지에서 버킷을 먼저 생성한 뒤 등록을 다시 시도하세요.
Velero 설치 실패
- SSH 인증 실패: 마스터 노드 비밀번호가 올바른지 확인하세요.
- CRD 설치 실패: 클러스터 관리자 권한을 가진 사용자로 시도했는지 확인하세요.
- BackupStorageLocation이 Unavailable: 외부 저장소 인증 정보가 잘못되었거나, Velero Pod에서 오브젝트 스토리지 엔드포인트에 도달하지 못하는 경우입니다. 등록된 저장소 정보를 재검증하세요.
백업 실패
- PartiallyFailed: 일부 리소스의 백업이 실패했습니다.
velero backup describe <backup-name> --details로 상세 로그를 확인하세요. - 스토리지 부족: 오브젝트 스토리지 버킷 용량이 가득 찼습니다. 오래된 백업을 정리하거나 저장 공간을 확장하세요.
오브젝트 스토리지 접근 확인
등록한 외부 저장소의 엔드포인트와 자격증명으로 S3 호환 API가 정상 응답하는지 확인합니다. KIOPS 저장소 관리 탭의 연결 테스트 버튼을 활용하면 별도 CLI 없이 검증할 수 있습니다.
직접 확인하려면 awscli 또는 s3cmd 등 S3 호환 클라이언트를 사용하세요.
베스트 프랙티스
스토리지 계획
클러스터 규모에 따라 적절한 스토리지 용량을 확보하세요.
- 소규모 (리소스 50개 미만): 일일 백업 크기 약 100MB, 30일 보존 시 50GB 권장
- 중규모 (리소스 50~500개): 일일 백업 크기 약 1GB, 30일 보존 시 200GB 권장
- 대규모 (리소스 500개 이상): 일일 백업 크기 약 10GB 이상, 30일 보존 시 1TB+ 권장
보안 권장사항
백업 파일에는 Secret, ConfigMap 등 민감한 정보가 포함될 수 있습니다.
- 자격증명 관리: 오브젝트 스토리지 Access Key와 Secret Key를 안전한 비밀번호 관리자에 보관하세요.
- 네트워크 정책: NetworkPolicy 등으로 오브젝트 스토리지 접근 경로를 제한하세요.
- 복원 테스트: 정기적으로 복원 테스트를 수행하여 백업이 실제로 작동하는지 검증하세요.
다음 단계
백업 인프라 설치가 완료되었습니다. 다음 가이드를 참고하여 백업과 복원을 수행하세요.
- 컨트롤 플레인 백업: Kubernetes 컨트롤 플레인 백업 (etcd 스냅샷 + PKI 인증서)
- Docker 백업: Docker/Podman 환경의 컨테이너와 볼륨 백업
- 복구: 백업 데이터를 사용한 시스템 복구