17.2. 在独立部署中备份 Red Hat Quay


此流程描述了如何在独立部署中创建 Red Hat Quay 备份。

流程

  1. 创建临时备份目录,如 quay-backup

    $ mkdir /tmp/quay-backup
  2. 以下示例命令表示 Red Hat Quay 启动的本地目录,例如 /opt/quay-install

    $ podman run --name quay-app \
       -v /opt/quay-install/config:/conf/stack:Z \
       -v /opt/quay-install/storage:/datastorage:Z \
       registry.redhat.io/quay/quay-rhel8:v3.12.3

    运行以下命令,进入绑定挂载到容器内的 /conf/stack 目录,如 /opt/quay-install

    $ cd /opt/quay-install
  3. 输入以下命令将 Red Hat Quay 部署的内容压缩到 quay-backup 目录中的存档中:

    $ tar cvf /tmp/quay-backup/quay-backup.tar.gz *

    输出示例:

    config.yaml
    config.yaml.bak
    extra_ca_certs/
    extra_ca_certs/ca.crt
    ssl.cert
    ssl.key
  4. 输入以下命令备份 Quay 容器服务:

    $ podman inspect quay-app | jq -r '.[0].Config.CreateCommand | .[]' | paste -s -d ' ' -
    
      /usr/bin/podman run --name quay-app \
      -v /opt/quay-install/config:/conf/stack:Z \
      -v /opt/quay-install/storage:/datastorage:Z \
      registry.redhat.io/quay/quay-rhel8:v3.12.3
  5. 输入以下命令将 conf/stack/config.yaml 文件的内容重定向到您的临时 quay-config.yaml 文件中:

    $ podman exec -it quay cat /conf/stack/config.yaml > /tmp/quay-backup/quay-config.yaml
  6. 输入以下命令来获取位于您临时 quay-config.yaml 中的 DB_URI

    $ grep DB_URI /tmp/quay-backup/quay-config.yaml

    输出示例:

    $ postgresql://<username>:test123@172.24.10.50/quay
  7. 输入以下命令将 PostgreSQL 内容提取到备份 .sql 文件中的临时备份目录中:

    $ pg_dump -h 172.24.10.50  -p 5432 -d quay  -U  <username>   -W -O > /tmp/quay-backup/quay-backup.sql
  8. 输入以下命令打印 DISTRIBUTED_STORAGE_CONFIG 的内容:

    DISTRIBUTED_STORAGE_CONFIG:
       default:
        - S3Storage
        - s3_bucket: <bucket_name>
          storage_path: /registry
          s3_access_key: <s3_access_key>
          s3_secret_key: <s3_secret_key>
          host: <host_name>
          s3_region: <region>
  9. 使用在第 7 步中获取的 access_key 凭证导出 AWS_ACCESS_KEY_ID

    $ export AWS_ACCESS_KEY_ID=<access_key>
  10. 使用在第 7 步中获取的 secret_key 导出 AWS_SECRET_ACCESS_KEY

    $ export AWS_SECRET_ACCESS_KEY=<secret_key>
  11. quay 存储桶同步到来自您的 DISTRIBUTED_STORAGE_CONFIGhostname/tmp/quay-backup/blob-backup/ 目录:

    $ aws s3 sync s3://<bucket_name>  /tmp/quay-backup/blob-backup/ --source-region us-east-2

    输出示例:

    download: s3://<user_name>/registry/sha256/9c/9c3181779a868e09698b567a3c42f3744584ddb1398efe2c4ba569a99b823f7a to registry/sha256/9c/9c3181779a868e09698b567a3c42f3744584ddb1398efe2c4ba569a99b823f7a
    download: s3://<user_name>/registry/sha256/e9/e9c5463f15f0fd62df3898b36ace8d15386a6813ffb470f332698ecb34af5b0d to registry/sha256/e9/e9c5463f15f0fd62df3898b36ace8d15386a6813ffb470f332698ecb34af5b0d

建议您在同步 quay 存储桶后删除 quay-config.yaml 文件,因为它包含敏感信息。quay-config.yaml 文件不会丢失,因为它在 quay-backup.tar.gz 文件中备份。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.