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