4.7. 备份项目
对所有相关数据创建备份涉及导出所有重要信息,然后恢复到一个新项目中。
因为 oc get all
命令只返回某些项目资源,所以您必须单独备份其他资源,包括 PVC 和 Secret,如以下步骤所示。
流程
列出要备份的项目数据:
$ 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
在项目中导出其他对象,如角色绑定、secret、服务帐户和持久性卷声明。
您可以使用以下命令导出项目中的所有命名空间对象:
$ for object in $(oc api-resources --namespaced=true -o name) do oc get -o yaml --export $object > $object.yaml done
请注意,无法导出某些资源,并显示
MethodNotAllowed
错误。一些导出的对象可以依赖特定元数据或对项目中唯一 ID 的引用。这是对重新创建的对象可用性的一个限制。
使用
镜像流
时,deploymentconfig
的image
参数可以指向已恢复环境中不存在的内部 registry 中镜像的特定sha
checksum。例如,以oc new-app centos/ruby-22-centos7~https://github.com/sclorg/ruby-ex.git
运行示例 "ruby-ex" 作为 oc new-app centos7~https://github.com/sclorg/ruby-ex.git 创建一个镜像流
ruby-ex
来托管该镜像:$ oc get dc ruby-ex -o jsonpath="{.spec.template.spec.containers[].image}" 10.111.255.221:5000/myproject/ruby-ex@sha256:880c720b23c8d15a53b01db52f7abdcbb2280e03f686a5c8edfef1a2a7b21cee
如果导入使用
oc get --export
导出的deploymentconfig
,在镜像不存在时会失败。