4.7. 프로젝트 백업
관련된 모든 데이터의 백업을 생성하려면 중요한 정보를 모두 내보낸 다음 새 프로젝트로 복원해야 합니다.
oc get all
명령은 특정 프로젝트 리소스만 반환하므로 아래 단계에 표시된 대로 PVC 및 보안을 비롯한 다른 리소스를 별도로 백업해야 합니다.
프로시저
백업할 프로젝트 데이터를 나열하십시오.
$ oc get all
출력 예
NAME TYPE FROM LATEST bc/ruby-ex Source Git 1 NAME TYPE FROM STATUS STARTED DURATION builds/ruby-ex-1 Source Git@c457001 Complete 2 minutes ago 35s NAME DOCKER REPO TAGS UPDATED is/guestbook 10.111.255.221:5000/myproject/guestbook latest 2 minutes ago is/hello-openshift 10.111.255.221:5000/myproject/hello-openshift latest 2 minutes ago is/ruby-22-centos7 10.111.255.221:5000/myproject/ruby-22-centos7 latest 2 minutes ago is/ruby-ex 10.111.255.221:5000/myproject/ruby-ex latest 2 minutes ago NAME REVISION DESIRED CURRENT TRIGGERED BY dc/guestbook 1 1 1 config,image(guestbook:latest) dc/hello-openshift 1 1 1 config,image(hello-openshift:latest) dc/ruby-ex 1 1 1 config,image(ruby-ex:latest) NAME DESIRED CURRENT READY AGE rc/guestbook-1 1 1 1 2m rc/hello-openshift-1 1 1 1 2m rc/ruby-ex-1 1 1 1 2m NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/guestbook 10.111.105.84 <none> 3000/TCP 2m svc/hello-openshift 10.111.230.24 <none> 8080/TCP,8888/TCP 2m svc/ruby-ex 10.111.232.117 <none> 8080/TCP 2m NAME READY STATUS RESTARTS AGE po/guestbook-1-c010g 1/1 Running 0 2m po/hello-openshift-1-4zw2q 1/1 Running 0 2m po/ruby-ex-1-build 0/1 Completed 0 2m po/ruby-ex-1-rxc74 1/1 Running 0 2m
프로젝트 오브젝트를
project.yaml
파일로 내보냅니다.$ oc get -o yaml --export all > project.yaml
역할 바인딩, 시크릿, 서비스 계정 및 영구 볼륨 클레임과 같은 프로젝트의 다른 오브젝트를 내보냅니다.
다음 명령을 사용하여 프로젝트의 네임스페이스가 지정된 모든 오브젝트를 내보낼 수 있습니다.
$ for object in $(oc api-resources --namespaced=true -o name) do oc get -o yaml --export $object > $object.yaml done
일부 리소스는 내보낼 수 없으며
MethodNotAllowed
오류가 표시됩니다.내보낸 일부 오브젝트에 특정 메타데이터 또는 프로젝트의 고유 ID에 대한 참조가 필요할 수 있습니다. 이것은 재생성된 오브젝트의 유용성에 대한 제한 사항입니다.
imagestreams
를 사용하는 경우deploymentconfig
의image
매개변수가 복원된 환경에 존재하지 않는 내부 레지스트리에 있는 이미지의 특정sha
체크섬을 가리킬 수 있습니다. 예를 들어 샘플 "ruby-ex"를oc new-app centos/ruby-22-centos7~https://github.com/sclorg/ruby-ex.git
로 실행하면 내부 레지스트리에서 이미지를 호스팅하여imagestream
ruby-ex
가 생성됩니다.$ oc get dc ruby-ex -o jsonpath="{.spec.template.spec.containers[].image}" 10.111.255.221:5000/myproject/ruby-ex@sha256:880c720b23c8d15a53b01db52f7abdcbb2280e03f686a5c8edfef1a2a7b21cee
deploymentconfig
를 가져오는 경우oc get --export
를 통해 내보냈으므로 이미지가 없으면 실패합니다.