4.7. 备份项目


对所有相关数据创建备份涉及导出所有重要信息,然后恢复到一个新项目中。

重要

因为 oc get all 命令只返回某些项目资源,所以您必须单独备份其他资源,包括 PVC 和 Secret,如以下步骤所示。

流程

  1. 列出要备份的项目数据:

    $ 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

  2. 将项目对象导出到 project.yaml 文件。

    $ oc get -o yaml --export all > project.yaml
  3. 在项目中导出其他对象,如角色绑定、secret、服务帐户和持久性卷声明。

    您可以使用以下命令导出项目中的所有命名空间对象:

    $ for object in $(oc api-resources --namespaced=true -o name)
    do
      oc get -o yaml --export $object > $object.yaml
    done

    请注意,无法导出某些资源,并显示 MethodNotAllowed 错误。

  4. 一些导出的对象可以依赖特定元数据或对项目中唯一 ID 的引用。这是对重新创建的对象可用性的一个限制。

    使用镜像流时,deploymentconfigimage 参数可以指向已恢复环境中不存在的内部 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,在镜像不存在时会失败。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.