본문으로 건너뛰기

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 설치 단계에서 입력이 필요합니다.
권한이 부족하다면?

[백업 관리] 메뉴가 보이지 않거나 접근이 거부된다면, 기관 관리자에게 권한을 요청하세요.


오브젝트 스토리지 자동 설치 (InstallMinioStorageModal)

별도로 운영 중인 오브젝트 스토리지가 없다면 KIOPS에서 자동으로 설치할 수 있습니다. [백업 관리] > 저장소 관리 탭에서 새 오브젝트 스토리지 설치 버튼을 클릭하면 모달 제목이 **"새 오브젝트 스토리지 설치"**인 창이 열립니다.

설치 옵션

  • 저장소 이름: 등록할 저장소를 식별할 이름입니다. (설명은 선택 입력)
  • 데이터 폴더 경로: 저장소 데이터가 저장될 절대 경로입니다. 필수이며 사전에 생성되어 있어야 합니다.
  • Access Key / Secret Key: 저장소 접근 자격증명입니다.
  • 버킷 이름: Velero 백업에 사용할 S3 버킷 이름입니다. 기본값: velero
  • S3 API 포트: S3 API 엔드포인트 포트입니다. 기본값: 8333
  • 설치 대상 서버: 오브젝트 스토리지를 설치할 서버(SSH 접속 경로)를 지정합니다.
자동 설치 구현체

자동 설치는 SeaweedFS를 기반으로 동작합니다. SeaweedFS는 S3 호환 API를 제공하는 경량 분산 오브젝트 스토리지입니다.


외부 저장소 등록

KIOPS는 외부 저장소를 BackupStorageFormModal을 통해 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)
  • SSH 터널링 옵션(선택): 사내 폐쇄망 환경에서 SSH 점프 호스트를 통해 접근해야 하는 경우 활성화합니다.

Step 3 - 등록 완료

연결 테스트가 성공하면 외부 저장소 목록에 추가됩니다.

인증 정보 보관

Access Key와 Secret Key는 안전한 곳에 별도로 보관하세요. 분실 시 등록된 저장소의 인증을 갱신해야 합니다.


인프라와 외부 저장소 연결 (InfraLinkModal)

등록한 외부 저장소를 어느 인프라(런타임)에서 사용할지 지정해야 백업 시 선택 가능한 저장소로 노출됩니다.

  1. 저장소 관리 탭에서 대상 저장소의 연결 관리 아이콘을 클릭합니다.
  2. InfraLinkModal에서 연결할 인프라(클러스터/호스트)를 선택합니다.
  3. 저장 후, 해당 인프라의 백업 생성 마법사에서 이 저장소가 선택지로 표시됩니다.
인프라별 분리 사용

같은 오브젝트 스토리지를 여러 인프라에 연결하거나, 인프라마다 다른 저장소를 연결할 수 있습니다.


Velero 설치 (SimpleVeleroInstallModal)

KIOPS의 Velero 설치는 1-step 모달입니다. 다단계 마법사, 버전 선택, 볼륨 스냅샷 옵션, Provider/StorageClass 선택은 제공되지 않습니다.

진입 경로

  • 경로 A: 백업 생성 모달에서 Velero가 미설치된 경우 자동으로 SimpleVeleroInstallModal이 안내됩니다.
  • 경로 B: 인프라 설정 페이지 내 InfraVeleroSetting 상태 영역에서 직접 진입합니다.

설치 단계

  1. 외부 저장소 선택: 위에서 등록한 외부 저장소 중 하나를 선택합니다.
  2. SSH 비밀번호 입력: 마스터 노드에 접근할 SSH 비밀번호를 입력합니다.
  3. 설치 버튼 클릭: Velero 네임스페이스 생성, CRD 설치, BackupStorageLocation 등록까지 자동으로 진행됩니다.
마법사 옵션 안내

가이드 이전 버전의 "버전 선택", "볼륨 스냅샷 활성화", "Provider", "Service Type" 같은 옵션은 현재 KIOPS UI에 존재하지 않습니다. 모두 기본값으로 자동 구성됩니다.

설치 상태 확인

설치 진행과 결과는 저장소 관리 탭 하단의 InstallStatusDisplay 영역에서 확인할 수 있습니다.

  • Velero Pod 상태
  • BackupStorageLocation 상태
  • 연결된 외부 저장소 정보

kubectl로도 확인할 수 있습니다.

kubectl get pods -n velero
kubectl get backupstoragelocations -n velero

Velero 백업·복원 기능

설치 이후 백업과 복원 과정에서 활용할 수 있는 주요 기능을 안내합니다.

백업 크기 자동 기록

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, 버킷명을 다시 확인하세요. 사내망에서 오브젝트 스토리지에 접근할 수 없는 경우 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 등 민감한 정보가 포함될 수 있습니다.

  1. 자격증명 관리: 오브젝트 스토리지 Access Key와 Secret Key를 안전한 비밀번호 관리자에 보관하세요.
  2. 네트워크 정책: NetworkPolicy 등으로 오브젝트 스토리지 접근 경로를 제한하세요.
  3. 복원 테스트: 정기적으로 복원 테스트를 수행하여 백업이 실제로 작동하는지 검증하세요.

다음 단계

백업 인프라 설치가 완료되었습니다. 다음 가이드를 참고하여 백업과 복원을 수행하세요.