6.2. Red Hat Quay のバックアップ


PostgreSQL イメージで提供されるツールまたは独自のバックアップインフラストラクチャーのいずれかを使用して、データベースのバックアップを定期的に実行する必要があります。Red Hat Quay Operator は、PostgreSQL データベースがバックアップされていることを確認しません。

注記

この手順では、Red Hat Quay PostgreSQL データベースのバックアップを説明します。Clair PostgreSQL データベースのバックアップは説明しません。厳密に言えば、Clair PostgreSQL データベースは再作成できるため、バックアップする必要はありません。ゼロから再作成する場合は、Red Hat Quay デプロイメント内のすべてのイメージがスキャンされた後、情報が再入力されるまで待つことになります。このダウンタイム中は、セキュリティーレポートを利用できません。

Clair PostgreSQL データベースのバックアップを検討している場合は、データベースのサイズが Red Hat Quay 内に保存されているイメージの数に依存することを考慮する必要があります。データベースが非常に大きくなる可能性があるためです。

この手順では、Operator を使用して Red Hat Quay on OpenShift Container Platform のバックアップを作成する方法を説明します。

前提条件

  • Red Hat Quay Operator を使用して、OpenShift Container Platform 上に Red Hat Quay を正常にデプロイしている。ステータス条件 AvailableTrue に設定されている。
  • コンポーネント quaypostgres、および objectstoragemanaged: true に設定されている。
  • コンポーネント clairmanaged: true に設定されている場合、コンポーネント clairpostgresmanaged: true に設定されている (Red Hat Quay v3.7 以降)。
注記

デプロイメントに部分的に管理されていないデータベースまたはストレージコンポーネントが含まれ、PostgreSQL または S3 互換オブジェクトストレージの外部サービスを使用している場合、Red Hat Quay デプロイメントを実行するには、サービスプロバイダーまたはベンダーのドキュメントを参照してデータのバックアップを作成してください。このガイドで説明されているツールは、外部 PostgreSQL データベースまたはオブジェクトストレージのバックアップの開始点として参照できます。

6.2.1. Red Hat Quay 設定のバックアップ

Red Hat Quay の設定をバックアップするには、次の手順を実行します。

手順

  1. QuayRegistry カスタムリソースをエクスポートしてバックアップするには、次のコマンドを入力します。

    $ oc get quayregistry <quay_registry_name> -n <quay_namespace> -o yaml > quay-registry.yaml
    Copy to Clipboard Toggle word wrap
  2. 作成される quayregistry.yaml を編集し、ステータスセクションおよび以下のメタデータフィールドを削除します。

      metadata.creationTimestamp
      metadata.finalizers
      metadata.generation
      metadata.resourceVersion
      metadata.uid
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを入力して、マネージドキーのシークレットをバックアップします。

    注記

    Red Hat Quay 3.7.0 より前のバージョンを実行している場合は、この手順を省略できます。一部のシークレットは Red Hat Quay の初回デプロイ時に自動的に生成されます。これらは QuayRegistry リソースの namespace で、<quay_registry_name>-quay-registry-managed-secret-keys というシークレットに保存されます。

    $ oc get secret -n <quay_namespace> <quay_registry_name>-quay-registry-managed-secret-keys -o yaml > managed_secret_keys.yaml
    Copy to Clipboard Toggle word wrap
  4. 作成された managed_secret_keys.yaml ファイルを編集し、エントリー metadata.ownerReferences を削除します。managed_secret_keys.yaml ファイルは、以下のようになります。

    apiVersion: v1
    kind: Secret
    type: Opaque
    metadata:
      name: <quay_registry_name>-quay-registry-managed-secret-keys
      namespace: <quay_namespace>
    data:
      CONFIG_EDITOR_PW: <redacted>
      DATABASE_SECRET_KEY: <redacted>
      DB_ROOT_PW: <redacted>
      DB_URI: <redacted>
      SECRET_KEY: <redacted>
      SECURITY_SCANNER_V4_PSK: <redacted>
    Copy to Clipboard Toggle word wrap

    data プロパティーの情報はすべて同じままにする必要があります。

  5. 次のコマンドを入力して、現在の Quay 設定ファイルをリダイレクトします。

    $ oc get secret -n <quay-namespace>  $(oc get quayregistry <quay_registry_name> -n <quay_namespace>  -o jsonpath='{.spec.configBundleSecret}') -o yaml > config-bundle.yaml
    Copy to Clipboard Toggle word wrap
  6. Quay Pod 内にマウントされた /conf/stack/config.yaml ファイルをバックアップします。

    $ oc exec -it quay_pod_name -- cat /conf/stack/config.yaml > quay_config.yaml
    Copy to Clipboard Toggle word wrap
  7. Quay データベース名を取得します。

    $ oc -n <quay_namespace> rsh $(oc get pod -l app=quay -o NAME -n <quay_namespace> |head -n 1) cat /conf/stack/config.yaml|awk -F"/" '/^DB_URI/ {print $4}'
    Copy to Clipboard Toggle word wrap

    出力例

    quayregistry-quay-database
    Copy to Clipboard Toggle word wrap

6.2.2. Red Hat Quay デプロイメントのスケールダウン

Red Hat Quay デプロイメントをスケールダウンするには、次の手順を実行します。

重要

この手順は、Red Hat Quay デプロイメントの状態の整合性のあるバックアップを作成するために必要になります。PostgreSQL データベースや S3 互換オブジェクトストレージが外部サービスによって提供されるセットアップ (Red Hat Quay Operator で管理されない) を含め、この手順を省略しないでください。

手順

  1. Red Hat Quay デプロイメントのバージョンに応じて、次のいずれかのオプションを使用してデプロイメントをスケールダウンします。

    1. Operator バージョン 3.7 以降: Red Hat Quay の自動スケーリングを無効にし、Red Hat Quay、ミラーワーカー、および Clair (管理される場合) のレプリカ数をオーバーライドすることで Red Hat Quay デプロイメントを縮小します。QuayRegistry リソースは、以下のようになります。

      apiVersion: quay.redhat.com/v1
      kind: QuayRegistry
      metadata:
        name: registry
        namespace: ns
      spec:
        components:- kind: horizontalpodautoscaler
            managed: false 
      1
      
          - kind: quay
            managed: true
            overrides: 
      2
      
              replicas: 0
          - kind: clair
            managed: true
            overrides:
              replicas: 0
          - kind: mirror
            managed: true
            overrides:
              replicas: 0
      Copy to Clipboard Toggle word wrap
      1
      Quay、Clair、ミラーリングワーカーの自動スケーリングを無効にします。
      2
      データベースおよびオブジェクトストレージにアクセスするコンポーネントのレプリカ数を 0 に設定します。
    2. Operator バージョン 3.6 以前: まず Red Hat Quay レジストリーをスケールダウンしてからマネージドの Red Hat Quay リソースをスケールダウンして、Red Hat Quay デプロイメントをスケールダウンします。

      $ oc scale --replicas=0 deployment $(oc get deployment -n <quay-operator-namespace>|awk '/^quay-operator/ {print $1}') -n <quay-operator-namespace>
      Copy to Clipboard Toggle word wrap
      $ oc scale --replicas=0 deployment $(oc get deployment -n <quay-namespace>|awk '/quay-app/ {print $1}') -n <quay-namespace>
      Copy to Clipboard Toggle word wrap
      $ oc scale --replicas=0 deployment $(oc get deployment -n <quay-namespace>|awk '/quay-mirror/ {print $1}') -n <quay-namespace>
      Copy to Clipboard Toggle word wrap
      $ oc scale --replicas=0 deployment $(oc get deployment -n <quay-namespace>|awk '/clair-app/ {print $1}') -n <quay-namespace>
      Copy to Clipboard Toggle word wrap
  2. registry-quay-appregistry-quay-mirror、および registry-clair-app Pod (どのコンポーネントを Red Hat Quay Operator がマネージするように設定したかにより異なります) が非表示になるまで待機します。以下のコマンドを実行してステータスを確認できます。

    $ oc get pods -n <quay_namespace>
    Copy to Clipboard Toggle word wrap

    出力例:

    $ oc get pod
    Copy to Clipboard Toggle word wrap

    出力例

    quay-operator.v3.7.1-6f9d859bd-p5ftc               1/1     Running     0             12m
    quayregistry-clair-postgres-7487f5bd86-xnxpr       1/1     Running     1 (12m ago)   12m
    quayregistry-quay-app-upgrade-xq2v6                0/1     Completed   0             12m
    quayregistry-quay-database-859d5445ff-cqthr        1/1     Running     0             12m
    quayregistry-quay-redis-84f888776f-hhgms           1/1     Running     0             12m
    Copy to Clipboard Toggle word wrap

6.2.3. Red Hat Quay マネージドデータベースのバックアップ

Red Hat Quay マネージドデータベースをバックアップするには、次の手順を実行します。

注記

Red Hat Quay デプロイメントが外部のアンマネージド PostgreSQL データベースで設定されている場合は、これらのデータベースの一貫したバックアップを作成する方法についてベンダーのドキュメントを参照してください。

手順

  1. Quay PostgreSQL Pod 名を特定します。

    $ oc get pod -l quay-component=postgres -n <quay_namespace> -o jsonpath='{.items[0].metadata.name}'
    Copy to Clipboard Toggle word wrap

    出力例:

    quayregistry-quay-database-59f54bb7-58xs7
    Copy to Clipboard Toggle word wrap
  2. バックアップデータベースをダウンロードします。

    $ oc -n <quay_namespace> exec quayregistry-quay-database-59f54bb7-58xs7 -- /usr/bin/pg_dump -C quayregistry-quay-database  > backup.sql
    Copy to Clipboard Toggle word wrap

6.2.3.1. Red Hat Quay マネージドオブジェクトストレージのバックアップ

Red Hat Quay マネージドオブジェクトストレージをバックアップするには、次の手順を実行します。このセクションの手順は、以下の設定に適用されます。

  • スタンドアロンのマルチクラウドオブジェクトゲートウェイ設定
  • OpenShift Data Foundation ストレージでは、Red Hat Quay Operator が ObjectStorageBucketClaim API 経由で S3 オブジェクトストレージバケットをプロビジョニングしている必要があります。
注記

Red Hat Quay デプロイメントが外部 (マネージド外) オブジェクトストレージで設定されている場合は、Quay のストレージバケットのコンテンツのコピーを作成する方法についてベンダーのドキュメントを参照してください。

手順

  1. 次のコマンドを入力し、AWS_ACCESS_KEY_ID をデコードしてエクスポートします。

    $ export AWS_ACCESS_KEY_ID=$(oc get secret -l app=noobaa -n <quay-namespace>  -o jsonpath='{.items[0].data.AWS_ACCESS_KEY_ID}' |base64 -d)
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを入力し、AWS_SECRET_ACCESS_KEY_ID をデコードしてエクスポートします。

    $ export AWS_SECRET_ACCESS_KEY=$(oc get secret -l app=noobaa -n <quay-namespace> -o jsonpath='{.items[0].data.AWS_SECRET_ACCESS_KEY}' |base64 -d)
    Copy to Clipboard Toggle word wrap
  3. 新しいディレクトリーを作成します。

    $ mkdir blobs
    Copy to Clipboard Toggle word wrap
注記

AWS コマンドラインユーティリティーの代わりに、rclone または sc3md を使用することもできます。

  1. 次のコマンドを入力して、すべての Blob をディレクトリーにコピーします。

    $ aws s3 sync --no-verify-ssl --endpoint https://$(oc get route s3 -n openshift-storage  -o jsonpath='{.spec.host}')  s3://$(oc get cm -l app=noobaa -n <quay-namespace> -o jsonpath='{.items[0].data.BUCKET_NAME}') ./blobs
    Copy to Clipboard Toggle word wrap

6.2.4. Red Hat Quay デプロイメントのバックアップのスケーリング

  1. Red Hat Quay デプロイメントのバージョンに応じて、次のいずれかのオプションを使用してデプロイメントをスケールアップします。

    1. Operator バージョン 3.7 以降: 自動スケーリングを再度有効にし、必要な場合は Quay、ミラーワーカー、および Clair のレプリカオーバーライドを適宜削除して、Red Hat Quay デプロイメントをスケールアップします。QuayRegistry リソースは、以下のようになります。

      apiVersion: quay.redhat.com/v1
      kind: QuayRegistry
      metadata:
        name: registry
        namespace: ns
      spec:
        components:- kind: horizontalpodautoscaler
            managed: true 
      1
      
          - kind: quay 
      2
      
            managed: true
          - kind: clair
            managed: true
          - kind: mirror
            managed: true
      Copy to Clipboard Toggle word wrap
      1
      Quay、Clair、ミラーリングワーカーの自動スケーリングの再有効化 (必要に応じて)
      2
      Quay コンポーネントのバックアップをスケーリングするためにレプリカオーバーライドを再削除
    2. Operator バージョン 3.6 以前の場合: Red Hat Quay レジストリーをスケールアップして、Red Hat Quay デプロイメントをスケールアップします。

      $ oc scale --replicas=1 deployment $(oc get deployment -n <quay_operator_namespace> | awk '/^quay-operator/ {print $1}') -n <quay_operator_namespace>
      Copy to Clipboard Toggle word wrap
  2. 次のコマンドを入力して、Red Hat Quay デプロイメントのステータスを確認します。

    $ oc wait quayregistry registry --for=condition=Available=true -n <quay_namespace>
    Copy to Clipboard Toggle word wrap

    出力例:

    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
      ...
      name: registry
      namespace: <quay-namespace>
      ...
    spec:
      ...
    status:
      - lastTransitionTime: '2022-06-20T05:31:17Z'
        lastUpdateTime: '2022-06-20T17:31:13Z'
        message: All components reporting as healthy
        reason: HealthChecksPassing
        status: 'True'
        type: Available
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る