Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
maxLevel7
minLevel1

...

1. Velero 개요

...

Velero는 Kubernetes 리소스와 볼륨을 백업 및 복원하고, 재해 복구와 마이그레이션을 위한 오픈소스 도구입니다.

Velero 특징

  • On-demand 백업: 원하는 즉시 데이터를 백업

  • Scheduled 백업: 예약 작업을 통해 데이터를 반복적으로 백업

  • 복원: 이전에 생성한 백업에서 모든 리소스를 복원 가능

  • 백업 만료: 백업을 생성할때 플래그를 추가하여 TTL을 지정 가능

  • 오브젝트 스토리지 동기화: 백업 리소스가 존재하는지 지속적으로 확인이 가능

  • 마이그레이션: 동일한 오브젝트 스토리지를 사용할 경우 클러스터간 리소스를 마이그레이션을 할 수 있음

Velero 구조

...

백업 구조

  1. Velero Client는 Kubernetes API 서버를 호출하여 백업 개체를 생성합니다.

  2. BackupController는 새로운 백업 개체를 확인하고 유효성을 검사합니다.

  3. BackupController는 API 서버에 리소스를 쿼리하여 백업할 데이터를 수집합니다.

  4. BackupController는 오브젝트 스토리지 서비스를 호출하여 백업 파일을 업로드합니다.

...

  1. Velero Client는 Kubernetes API 서버를 호출하여 복원 개체를 생성합니다.

  2. RestoreController는 새로운 복원 개체를 확인하고 유효성을 검사합니다.

  3. RestoreController는 오브젝트 스토리지 서비스에서 백업 정보를 가져옵니다.

  4. 자체적으로 백업된 리소스를 실행하여 리소스가 새로운 클러스터에서 작동하는지 확인합니다.

  5. RestoreController는 복원 프로세스를 시작하여 각 리소스를 순차적으로 복원합니다.

2. Velero 사용

리소스 백업

  • 백업할 리소스를 kubectl 명령어를 통해 확인합니다.

...

Code Block
(k8s-venv) root@k8s-master01:~# velero get backup
NAME                   STATUS      ERRORS   WARNINGS   CREATED                         EXPIRES   STORAGE LOCATION   SELECTOR
ingress-nginx-backup   Completed   0        0          2022-12-17 20:38:55 +0900 KST   29d       default            <none>

리소스 복원

  • 장애 상황을 가정하여 쿠버네티스 리소스를 삭제합니다.

...

Code Block
(k8s-venv) root@k8s-master01:~# kubectl get all -n ingress-nginx
NAME                                 READY   STATUS    RESTARTS   AGE
pod/ingress-nginx-controller-79kc4   1/1     Running   0          26s
pod/ingress-nginx-controller-kmdp9   1/1     Running   0          26s
pod/ingress-nginx-controller-q5cmx   1/1     Running   0          26s
pod/ingress-nginx-controller-sl2qc   1/1     Running   0          26s
pod/ingress-nginx-controller-v2cfd   1/1     Running   0          26s

NAME                                         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)   AGE
service/ingress-nginx-controller-admission   ClusterIP   10.233.24.2   <none>        443/TCP   26s

NAME                                      DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
daemonset.apps/ingress-nginx-controller   5         5         5       5            5           kubernetes.io/os=linux   26s

3. Velero 기술 자료

https://velero.io/docs/v1.10/

4. Velero 릴리즈 노트

https://github.com/vmware-tanzu/velero/releases