Velero 백업 및 복원 테스트 예제
- 인쇄
- PDF
Velero 백업 및 복원 테스트 예제
- 인쇄
- PDF
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
Velero 플러그인에서 설명한 내용을 바탕으로 백업과 복원 기능이 정상적으로 작동하는지 테스트하는 예제입니다.
nginx 배포 예제
백업 및 복원 테스트 예제를 수행할 수 있도록 먼저 nginx를 배포합니다.
nginx를 배포하는 예제는 다음과 같습니다.
- 아래 코드를 복사하여 nginx-example.yaml 파일로 저장해 주십시오.
# nginx-example.yaml --- apiVersion: v1 kind: Namespace metadata: name: nginx-example labels: app: nginx --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nginx-log-pvc namespace: nginx-example labels: app: nginx spec: storageClassName: nks-block-storage accessModes: - ReadWriteOnce resources: requests: storage: 10Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deploy namespace: nginx-example labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: volumes: - name: nginx-logs persistentVolumeClaim: claimName: nginx-log-pvc containers: - image: nks.kr.ncr.ntruss.com/nginx:1.9 name: nginx ports: - containerPort: 80 volumeMounts: - mountPath: "/var/log/nginx" name: nginx-logs readOnly: false
- 아래 명령어를 실행하여 클러스터에 nginx를 배포해 주십시오.
$ kubectl --kubeconfig $KUBE_CONFIG apply -f nginx-example.yaml
- nginx에 접속할 수 있도록 아래 명령어를 차례대로 실행하여 Pod를 확인한 후 포트포워딩해 주십시오.
$ kubectl --kubeconfig $KUBE_CONFIG get pods --namespace nginx-example
$ kubectl --kubeconfig $KUBE_CONFIG --namespace nginx-example port-forward pod/nginx-deploy-749cb5ff64-x8j4w 9191:80
- 포워딩된 포트를 브라우저에 입력하거나
curl
명령어를 사용하여 ngix에 접속한 후 화면이 정상적으로 표시되는지 확인해 주십시오.
Velero를 통한 백업 예제
Velero를 통해 백업을 수행하는 예제는 다음과 같습니다.
- 아래 명령어를 차례대로 실행하여 nginx 컨테이너에서 로그를 확인한 후 컨테이너에서 나와 주십시오.
$ kubectl --kubeconfig $KUBE_CONFIG exec -it nginx-deploy-749cb5ff64-x8j4w --namespace nginx-example -- /bin/bash
nginx-deploy-749cb5ff64-x8j4w:/# cat /var/log/nginx/access.log
$ exit
- 아래 명령어를 실행하여 현재 클러스터 상태의 백업을 생성해 주십시오.
$ velero --kubeconfig $KUBE_CONFIG backup create nginx-backup --selector app=nginx
- nginx의 Kubernetes 오브젝트를 Object Storage에 저장하고, nginx를 배포할 때 생성했던 PersistentVolume의 스냅샷을 생성합니다.
--selector app=nginx
옵션은 Velero 서버가 Label Selector를 통해app=nginx
라는 Label이 설정되어 있는 Kubernetes 오브젝트만 백업하도록 지정합니다.
Velero를 통한 복원 예제
Velero에서 백업한 데이터를 사용하여 복원을 수행하는 예제는 다음과 같습니다.
- 아래 명령어를 차례대로 실행하여
nginx-example
Namespace를 삭제한 후 정상적으로 삭제되었는지 확인해 주십시오.$ kubectl --kubeconfig $KUBE_CONFIG delete namespace nginx-example
$ kubectl --kubeconfig $KUBE_CONFIG get deployments --namespace=nginx-example
- 아래 명령어를 실행하여 복원을 수행해 주십시오.
velero --kubeconfig $KUBE_CONFIG restore create --from-backup nginx-backup
- 아래 명령어를 각각 실행하여 복원이 정상적으로 수행되었는지 확인해 주십시오.
- 복원된 Deployment의 상태 확인
$ kubectl --kubeconfig $KUBE_CONFIG get deployments --namespace=nginx-example
PersistentVolume
이 생성되었는지 확인
$ kubectl --kubeconfig $KUBE_CONFIG get pvc --namespace=nginx-example
- 아래 명령어를 차례대로 실행하여 복원 전과 같은 로그가 표시되는지 확인
$ kubectl --kubeconfig $KUBE_CONFIG get pods --namespace nginx-example
$ kubectl --kubeconfig $KUBE_CONFIG exec -it nginx-deploy-749cb5ff64-x8j4w --namespace nginx-example -- /bin/bash
$ nginx-deploy-749cb5ff64-x8j4w:/# cat /var/log/nginx/access.log
이 문서가 도움이 되었습니까?