第18章 スタンドアロンデプロイメントでの Red Hat Quay のバックアップと復元
このセクションの内容を使用して、スタンドアロンデプロイメントの Red Hat Quay をバックアップおよび復元します。
18.1. スタンドアロンデプロイメントでの Red Hat Quay のバックアップ
この手順では、スタンドアロンデプロイメントで Red Hat Quay のバックアップを作成する方法について説明します。
手順
一時バックアップディレクトリーを作成します (例:
quay-backup
)。$ mkdir /tmp/quay-backup
以下のコマンド例は、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.8.15
次のコマンドを実行して、コンテナー内の
/conf/stack
にバインドマウントするディレクトリー (/opt/quay-install
など) に移動します。$ cd /opt/quay-install
以下のコマンドを入力して、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
次のコマンドを入力して、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.8.15
次のコマンドを入力して、
conf/stack/config.yaml
ファイルの内容を一時的に作成したquay-config.yaml
ファイルにリダイレクトします。$ podman exec -it quay cat /conf/stack/config.yaml > /tmp/quay-backup/quay-config.yaml
以下のコマンドを入力して、一時的に作成した
quay-config.yaml
にあるDB_URI
を取得します。$ grep DB_URI /tmp/quay-backup/quay-config.yaml
出力例:
$ postgresql://<username>:test123@172.24.10.50/quay
次のコマンドを入力して、PostgreSQL の内容をバックアップ .sql ファイルの一時バックアップディレクトリーに抽出します。
$ pg_dump -h 172.24.10.50 -p 5432 -d quay -U <username> -W -O > /tmp/quay-backup/quay-backup.sql
次のコマンドを入力して、
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>
ステップ 7 で取得した
access_key
認証情報を使用して、AWS_ACCESS_KEY_ID
をエクスポートします。$ export AWS_ACCESS_KEY_ID=<access_key>
ステップ 7 で取得した
secret_key
を使用して、AWS_SECRET_ACCESS_KEY
をエクスポートします。$ export AWS_SECRET_ACCESS_KEY=<secret_key>
DISTRIBUTED_STORAGE_CONFIG
のhostname
からquay
バケットを/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
ファイルにバックアップされるため、失われることはありません。