4.21. OADP と 3scale


4.21.1. OADP を使用した 3scale API Management のバックアップと復元

Red Hat 3scale API Management を使用すると、内部ユーザーまたは外部ユーザーの API を管理できます。3scale のコンポーネントは、オンプレミスやクラウドに、またはマネージドサービスとしてデプロイできます。要件に応じてこれらを組み合わせてデプロイすることもできます。

OpenShift API for Data Protection (OADP) を使用すると、アプリケーションリソース、永続ボリューム、および設定をバックアップして、3scale API Management デプロイメントを保護できます。

注記

OpenShift API for Data Protection (OADP) Operator を使用すると、実行中のサービスに影響を与えることなく、3scale API Management のクラスター上のストレージデータベースをバックアップおよび復元できます。

3scale API Management を使用して次の操作を実行するように OADP を設定できます。

4.21.2. OADP を使用した 3scale API Management のバックアップ

3scale Operator と、MySQL、Redis などのデータベースをバックアップすることで、Red Hat 3scale API Management のコンポーネントをバックアップできます。

前提条件

4.21.2.1. Data Protection Application の作成

Red Hat 3scale API Management 用の Data Protection Application (DPA) カスタムリソース (CR) を作成できます。

手順

  1. 次の設定で YAML ファイルを作成します。

    dpa.yaml ファイルの例

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: dpa-sample
      namespace: openshift-adp
    spec:
      configuration:
        velero:
          defaultPlugins:
            - openshift
            - aws
            - csi
          resourceTimeout: 10m
        nodeAgent:
          enable: true
          uploaderType: kopia
      backupLocations:
        - name: default
          velero:
            provider: aws
            default: true
            objectStorage:
              bucket: <bucket_name> 
    1
    
              prefix: <prefix> 
    2
    
            config:
              region: <region> 
    3
    
              profile: "default"
              s3ForcePathStyle: "true"
              s3Url: <s3_url> 
    4
    
            credential:
              key: cloud
              name: cloud-credentials
    Copy to Clipboard

    1
    Backup Storage Location としてバケットを指定します。バケットが Velero バックアップ専用のバケットでない場合は、接頭辞を指定する必要があります。
    2
    バケットが複数の目的で使用される場合は、Velero バックアップの接頭辞を指定します (例: velero)。
    3
    Backup Storage Location のリージョンを指定します。
    4
    バックアップを保存するために使用しているオブジェクトストアの URL を指定します。
  2. 次のコマンドを実行して DPA CR を作成します。

    $ oc create -f dpa.yaml
    Copy to Clipboard

4.21.2.2. 3scale API Management Operator、シークレット、APIManager のバックアップ

Red Hat 3scale API Management Operator のリソースと、Secret および APIManager カスタムリソース (CR) の両方をバックアップできます。

前提条件

  • Data Protection Application (DPA) を作成した。

手順

  1. 次の設定を含む YAML ファイルを作成して、3scale Operator の CR (operatorgroupnamespacessubscriptions など) をバックアップします。

    例: backup.yaml ファイル

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: operator-install-backup 
    1
    
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: false
      includedNamespaces:
      - threescale   
    2
    
      includedResources:
      - operatorgroups
      - subscriptions
      - namespaces
      itemOperationTimeout: 1h0m0s
      snapshotMoveData: false
      ttl: 720h0m0s
    Copy to Clipboard

    1
    バックアップ内の metadata.name パラメーターの値は、3scale Operator の復元時に使用される metadata.backupName パラメーターで使用される値と同じです。
    2
    3scale Operator がインストールされている namespace。
    注記

    ReplicationControllersDeploymentPod オブジェクトをバックアップおよび復元して、手動で設定されたすべての環境がバックアップおよび復元されるようにすることもできます。復元フローには影響ありません。

  2. 次のコマンドを実行してバックアップ CR を作成します。

    $ oc create -f backup.yaml
    Copy to Clipboard

    出力例

    backup.velero.io/operator-install-backup created
    Copy to Clipboard

  3. 次の設定を含む YAML ファイルを作成して、Secret CR をバックアップします。

    例: backup-secret.yaml ファイル

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: operator-resources-secrets 
    1
    
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: false
      includedNamespaces:
      - threescale
      includedResources:
      - secrets
      itemOperationTimeout: 1h0m0s
      labelSelector:
        matchLabels:
          app: 3scale-api-management
      snapshotMoveData: false
      snapshotVolumes: false
      ttl: 720h0m0s
    Copy to Clipboard

    1
    バックアップ内の metadata.name パラメーターの値は、Secret の復元時に使用される metadata.backupName パラメーターで使用される値と同じです。
  4. 次のコマンドを実行して、Secret バックアップ CR を作成します。

    $ oc create -f backup-secret.yaml
    Copy to Clipboard

    出力例

    backup.velero.io/operator-resources-secrets created
    Copy to Clipboard

  5. 次の設定の YAML ファイルを作成して、APIManager CR をバックアップします。

    例: backup-apimanager.yaml ファイル

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: operator-resources-apim 
    1
    
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: false
      includedNamespaces:
      - threescale
      includedResources:
      - apimanagers
      itemOperationTimeout: 1h0m0s
      snapshotMoveData: false
      snapshotVolumes: false
      storageLocation: ts-dpa-1
      ttl: 720h0m0s
      volumeSnapshotLocations:
      - ts-dpa-1
    Copy to Clipboard

    1
    バックアップ内の metadata.name パラメーターの値は、APIManager の復元時に使用される metadata.backupName パラメーターで使用される値と同じです。
  6. 次のコマンドを実行して APIManager CR を作成します。

    $ oc create -f backup-apimanager.yaml
    Copy to Clipboard

    出力例

    backup.velero.io/operator-resources-apim created
    Copy to Clipboard

4.21.2.3. MySQL データベースのバックアップ

永続ボリューム要求 (PVC) を作成してアタッチし、指定したパスにダンプされたデータを含めることで、MySQL データベースをバックアップできます。

前提条件

  • Red Hat 3scale API Management Operator をバックアップした。

手順

  1. さらに PVC を追加するには、次の設定で YAML ファイルを作成します。

    ts_pvc.yaml ファイルの例

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: example-claim
      namespace: threescale
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: gp3-csi
      volumeMode: Filesystem
    Copy to Clipboard

  2. 次のコマンドを実行して追加の PVC を作成します。

    $ oc create -f ts_pvc.yml
    Copy to Clipboard
  3. MySQL ダンプを使用するように system-mysql デプロイメントを編集して、PVC をシステムデータベース Pod にアタッチします。

    $ oc edit deployment system-mysql -n threescale
    Copy to Clipboard
      volumeMounts:
        - name: example-claim
          mountPath: /var/lib/mysqldump/data
        - name: mysql-storage
          mountPath: /var/lib/mysql/data
        - name: mysql-extra-conf
          mountPath: /etc/my-extra.d
        - name: mysql-main-conf
          mountPath: /etc/my-extra
        ...
          serviceAccount: amp
      volumes:
            - name: example-claim
              persistentVolumeClaim:
                claimName: example-claim 
    1
    
        ...
    Copy to Clipboard
    1
    ダンプされたデータが含まれる PVC。
  4. MySQL データベースをバックアップするために、次の設定を含む YAML ファイルを作成します。

    mysql.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: mysql-backup 
    1
    
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: true
      hooks:
        resources:
        - name: dumpdb
          pre:
          - exec:
              command:
              - /bin/sh
              - -c
              - mysqldump -u $MYSQL_USER --password=$MYSQL_PASSWORD system --no-tablespaces
                > /var/lib/mysqldump/data/dump.sql 
    2
    
              container: system-mysql
              onError: Fail
              timeout: 5m
      includedNamespaces:
      - threescale
      includedResources: 
    3
    
      - deployment
      - pods
      - replicationControllers
      - persistentvolumeclaims
      - persistentvolumes
      itemOperationTimeout: 1h0m0s
      labelSelector:
        matchLabels:
          app: 3scale-api-management
          threescale_component_element: mysql
      snapshotMoveData: false
      ttl: 720h0m0s
    Copy to Clipboard

    1
    バックアップ内の metadata.name パラメーターの値は、MySQL データベースの復元時に使用される metadata.backupName パラメーターで使用される値と同じです。
    2
    データがバックアップされるディレクトリー。
    3
    バックアップするリソース。
  5. 次のコマンドを実行して、MySQL データベースをバックアップします。

    $ oc create -f mysql.yaml
    Copy to Clipboard

    出力例

    backup.velero.io/mysql-backup created
    Copy to Clipboard

検証

  • 次のコマンドを実行して、MySQL のバックアップが完了したことを確認します。

    $ oc get backups.velero.io mysql-backup -o yaml
    Copy to Clipboard

    出力例

    status:
    completionTimestamp: "2025-04-17T13:25:19Z"
    errors: 1
    expiration: "2025-05-17T13:25:16Z"
    formatVersion: 1.1.0
    hookStatus: {}
    phase: Completed
    progress: {}
    startTimestamp: "2025-04-17T13:25:16Z"
    version: 1
    Copy to Clipboard

4.21.2.4. バックエンドの Redis データベースのバックアップ

必要なアノテーションを追加し、includedResources パラメーターを使用してバックアップするリソースをリストすることで、Redis データベースをバックアップできます。

前提条件

  • Red Hat 3scale API Management Operator をバックアップした。
  • MySQL データベースをバックアップした。
  • バックアップを実行する前に、Redis キューが空になっている。

手順

  1. 次のコマンドを実行して、backend-redis デプロイメントのアノテーションを編集します。

    $ oc edit deployment backend-redis -n threescale
    Copy to Clipboard
    annotations:
    post.hook.backup.velero.io/command: >-
             ["/bin/bash", "-c", "redis-cli CONFIG SET auto-aof-rewrite-percentage
             100"]
           pre.hook.backup.velero.io/command: >-
             ["/bin/bash", "-c", "redis-cli CONFIG SET auto-aof-rewrite-percentage
             0"]
    Copy to Clipboard
  2. Redis データベースをバックアップするために、次の設定を含む YAML ファイルを作成します。

    redis-backup.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: redis-backup 
    1
    
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: true
      includedNamespaces:
      - threescale
      includedResources:
      - deployment
      - pods
      - replicationcontrollers
      - persistentvolumes
      - persistentvolumeclaims
      itemOperationTimeout: 1h0m0s
      labelSelector:
        matchLabels:
          app: 3scale-api-management
          threescale_component: backend
          threescale_component_element: redis
      snapshotMoveData: false
      snapshotVolumes: false
      ttl: 720h0m0s
    Copy to Clipboard

    1
    バックアップ内の metadata.name パラメーターの値は、Redis データベースの復元時に使用される metadata.backupName パラメーターで使用される値と同じです。
  3. 次のコマンドを実行して、Redis データベースをバックアップします。

    $ oc create -f redis-backup.yaml
    Copy to Clipboard

    出力例

    backup.velero.io/redis-backup created
    Copy to Clipboard

検証

  • 次のコマンドを実行して、Redis のバックアップが完了したことを確認します。

    $ oc get backups.velero.io redis-backup -o yaml
    Copy to Clipboard

    出力例

    status:
    completionTimestamp: "2025-04-17T13:25:19Z"
    errors: 1
    expiration: "2025-05-17T13:25:16Z"
    formatVersion: 1.1.0
    hookStatus: {}
    phase: Completed
    progress: {}
    startTimestamp: "2025-04-17T13:25:16Z"
    version: 1
    Copy to Clipboard

4.21.3. OADP を使用した 3scale API Management の復元

バックアップした 3scale Operator リソースを復元することにより、Red Hat 3scale API Management コンポーネントを復元できます。MySQL や Redis などのデータベースを復元することもできます。

データが復元されたら、3scale Operator とデプロイメントをスケールアップできます。

前提条件

  • Red Hat 3scale API Management をインストールして設定した。詳細は、OpenShift への 3scale API Management のインストール および Red Hat 3scale API Management を参照してください。
  • 3scale Operator と、MySQL、Redis などのデータベースをバックアップした。
  • 3scale の復元先のクラスターが、バックアップ元と同じクラスターである。
  • 別のクラスターで 3scale を復元する場合は、バックアップ元のクラスターと Operator の復元先のクラスターが、同じカスタムドメインを使用している。

4.21.3.1. 3scale API Management Operator、シークレット、APIManager の復元

以下の手順を使用して、Red Hat 3scale API Management Operator のリソースと、Secret および APIManager カスタムリソース (CR) の両方を復元できます。

前提条件

  • 3scale Operator をバックアップした。
  • MySQL および Redis データベースをバックアップした。
  • バックアップされたのと同じクラスター上でデータベースを復元しようとしている。

    バックアップ元とは異なるクラスターに Operator を復元する場合は、復元先のクラスターで nodeAgent を有効にして OADP をインストールして設定します。OADP の設定がソースクラスターと同じであることを確認してください。

手順

  1. 次のコマンドを実行して、3scale Operator のカスタムリソース定義 (CRD) と threescale namespace を削除します。

    $ oc delete project threescale
    Copy to Clipboard

    出力例

    "threescale" project deleted successfully
    Copy to Clipboard

  2. 3scale Operator を復元するために、次の設定を含む YAML ファイルを作成します。

    restore.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: operator-installation-restore
      namespace: openshift-adp
    spec:
      backupName: operator-install-backup 
    1
    
      excludedResources:
      - nodes
      - events
      - events.events.k8s.io
      - backups.velero.io
      - restores.velero.io
      - resticrepositories.velero.io
      - csinodes.storage.k8s.io
      - volumeattachments.storage.k8s.io
      - backuprepositories.velero.io
      itemOperationTimeout: 4h0m0s
    Copy to Clipboard

    1
    3scale Operator のバックアップを復元します。
  3. 次のコマンドを実行して、3scale Operator を復元します。

    $ oc create -f restore.yaml
    Copy to Clipboard

    出力例

    restore.velerio.io/operator-installation-restore created
    Copy to Clipboard

  4. 次のコマンドを実行して、s3-credentials Secret オブジェクトを手動で作成します。

    $ oc apply -f - <<EOF
    ---
    apiVersion: v1
    kind: Secret
    metadata:
          name: s3-credentials
          namespace: threescale
    stringData:
      AWS_ACCESS_KEY_ID: <ID_123456> 
    1
    
      AWS_SECRET_ACCESS_KEY: <ID_98765544> 
    2
    
      AWS_BUCKET: <mybucket.example.com> 
    3
    
      AWS_REGION: <us-east-1> 
    4
    
    type: Opaque
    EOF
    Copy to Clipboard
    1
    <ID_123456> を AWS 認証情報 ID に置き換えます。
    2
    <ID_98765544> を AWS 認証情報キーに置き換えます。
    3
    <mybucket.example.com> をターゲットバケット名に置き換えます。
    4
    <us-east-1> をバケットの AWS リージョンに置き換えます。
  5. 次のコマンドを実行して、3scale Operator をスケールダウンします。

    $ oc scale deployment threescale-operator-controller-manager-v2 --replicas=0 -n threescale
    Copy to Clipboard

    出力例

    deployment.apps/threescale-operator-controller-manager-v2 scaled
    Copy to Clipboard

  6. Secret を復元するために、次の設定を含む YAML ファイルを作成します。

    restore-secret.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: operator-resources-secrets
      namespace: openshift-adp
    spec:
      backupName: operator-resources-secrets 
    1
    
      excludedResources:
      - nodes
      - events
      - events.events.k8s.io
      - backups.velero.io
      - restores.velero.io
      - resticrepositories.velero.io
      - csinodes.storage.k8s.io
      - volumeattachments.storage.k8s.io
      - backuprepositories.velero.io
      itemOperationTimeout: 4h0m0s
    Copy to Clipboard

    1
    Secret のバックアップを復元します。
  7. 次のコマンドを実行して、Secret を復元します。

    $ oc create -f restore-secrets.yaml
    Copy to Clipboard

    出力例

    restore.velerio.io/operator-resources-secrets created
    Copy to Clipboard

  8. APIManager を復元するために、次の設定を含む YAML ファイルを作成します。

    restore-apimanager.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: operator-resources-apim
      namespace: openshift-adp
    spec:
      backupName: operator-resources-apim 
    1
    
      excludedResources: 
    2
    
      - nodes
      - events
      - events.events.k8s.io
      - backups.velero.io
      - restores.velero.io
      - resticrepositories.velero.io
      - csinodes.storage.k8s.io
      - volumeattachments.storage.k8s.io
      - backuprepositories.velero.io
      itemOperationTimeout: 4h0m0s
    Copy to Clipboard

    1
    APIManager のバックアップを復元します。
    2
    復元しないリソース。
  9. 次のコマンドを実行して、APIManager を復元します。

    $ oc create -f restore-apimanager.yaml
    Copy to Clipboard

    出力例

    restore.velerio.io/operator-resources-apim created
    Copy to Clipboard

  10. 次のコマンドを実行して、3scale Operator をスケールアップします。

    $ oc scale deployment threescale-operator-controller-manager-v2 --replicas=1 -n threescale
    Copy to Clipboard

    出力例

    deployment.apps/threescale-operator-controller-manager-v2 scaled
    Copy to Clipboard

4.21.3.2. MySQL データベースの復元

MySQL データベースを復元すると、次のリソースが再作成されます。

  • PodReplicationController、および Deployment オブジェクト。
  • 追加の永続ボリューム (PV) と関連する永続ボリューム要求 (PVC)。
  • example-claim PVC に含まれる MySQL ダンプ。
警告

データベースに関連付けられているデフォルトの PV と PVC は削除しないでください。削除すると、バックアップが削除されます。

前提条件

  • Secret および APIManager カスタムリソース (CR) を復元した。

手順

  1. 次のコマンドを実行して、Red Hat 3scale API Management Operator をスケールダウンします。

    $ oc scale deployment threescale-operator-controller-manager-v2 --replicas=0 -n threescale
    Copy to Clipboard

    出力例

    deployment.apps/threescale-operator-controller-manager-v2 scaled
    Copy to Clipboard

  2. 3scale Operator をスケールダウンするには、次のスクリプトを作成します。

    $ vi ./scaledowndeployment.sh
    Copy to Clipboard

    スクリプトの例:

    for deployment in apicast-production apicast-staging backend-cron backend-listener backend-redis backend-worker system-app system-memcache system-mysql system-redis system-searchd system-sidekiq zync zync-database zync-que; do
        oc scale deployment/$deployment --replicas=0 -n threescale
    done
    Copy to Clipboard

  3. 次のスクリプトを実行して、すべてのデプロイメント 3scale コンポーネントをスケールダウンします。

    $ ./scaledowndeployment.sh
    Copy to Clipboard

    出力例

    deployment.apps.openshift.io/apicast-production scaled
    deployment.apps.openshift.io/apicast-staging scaled
    deployment.apps.openshift.io/backend-cron scaled
    deployment.apps.openshift.io/backend-listener scaled
    deployment.apps.openshift.io/backend-redis scaled
    deployment.apps.openshift.io/backend-worker scaled
    deployment.apps.openshift.io/system-app scaled
    deployment.apps.openshift.io/system-memcache scaled
    deployment.apps.openshift.io/system-mysql scaled
    deployment.apps.openshift.io/system-redis scaled
    deployment.apps.openshift.io/system-searchd scaled
    deployment.apps.openshift.io/system-sidekiq scaled
    deployment.apps.openshift.io/zync scaled
    deployment.apps.openshift.io/zync-database scaled
    deployment.apps.openshift.io/zync-que scaled
    Copy to Clipboard

  4. 次のコマンドを実行して、system-mysql Deployment オブジェクトを削除します。

    $ oc delete deployment system-mysql -n threescale
    Copy to Clipboard

    出力例

    Warning: apps.openshift.io/v1 deployment is deprecated in v4.14+, unavailable in v4.10000+
    deployment.apps.openshift.io "system-mysql" deleted
    Copy to Clipboard

  5. MySQL データベースを復元するための次の YAML ファイルを作成します。

    restore-mysql.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: restore-mysql
      namespace: openshift-adp
    spec:
      backupName: mysql-backup 
    1
    
      excludedResources:
        - nodes
        - events
        - events.events.k8s.io
        - backups.velero.io
        - restores.velero.io
        - csinodes.storage.k8s.io
        - volumeattachments.storage.k8s.io
        - backuprepositories.velero.io
        - resticrepositories.velero.io
      hooks:
        resources:
          - name: restoreDB
            postHooks:
              - exec:
                  command:
                    - /bin/sh
                    - '-c'
                    - >
                      sleep 30
    
                      mysql -h 127.0.0.1 -D system -u root
                      --password=$MYSQL_ROOT_PASSWORD <
                      /var/lib/mysqldump/data/dump.sql 
    2
    
                  container: system-mysql
                  execTimeout: 80s
                  onError: Fail
                  waitTimeout: 5m
      itemOperationTimeout: 1h0m0s
      restorePVs: true
    Copy to Clipboard

    1
    MySQL のバックアップを復元します。
    2
    データの復元元のパス。
  6. 次のコマンドを実行して、MySQL データベースを復元します。

    $ oc create -f restore-mysql.yaml
    Copy to Clipboard

    出力例

    restore.velerio.io/restore-mysql created
    Copy to Clipboard

検証

  1. 次のコマンドを実行して、PodVolumeRestore の復元が完了したことを確認します。

    $ oc get podvolumerestores.velero.io -n openshift-adp
    Copy to Clipboard

    出力例

    NAME                    NAMESPACE    POD                     UPLOADER TYPE   VOLUME                  STATUS      TOTALBYTES   BYTESDONE   AGE
    restore-mysql-rbzvm     threescale   system-mysql-2-kjkhl    kopia           mysql-storage           Completed   771879108    771879108   40m
    restore-mysql-z7x7l     threescale   system-mysql-2-kjkhl    kopia           example-claim           Completed   380415       380415      40m
    Copy to Clipboard

  2. 次のコマンドを実行して、追加の PVC が復元されたことを確認します。

    $ oc get pvc -n threescale
    Copy to Clipboard

    出力例

    NAME                    STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    backend-redis-storage   Bound    pvc-3dca410d-3b9f-49d4-aebf-75f47152e09d   1Gi        RWO            gp3-csi        <unset>                 68m
    example-claim           Bound    pvc-cbaa49b0-06cd-4b1a-9e90-0ef755c67a54   1Gi        RWO            gp3-csi        <unset>                 57m
    mysql-storage           Bound    pvc-4549649f-b9ad-44f7-8f67-dd6b9dbb3896   1Gi        RWO            gp3-csi        <unset>                 68m
    system-redis-storage    Bound    pvc-04dadafd-8a3e-4d00-8381-6041800a24fc   1Gi        RWO            gp3-csi        <unset>                 68m
    system-searchd          Bound    pvc-afbf606c-d4a8-4041-8ec6-54c5baf1a3b9   1Gi        RWO            gp3-csi        <unset>                 68m
    Copy to Clipboard

4.21.3.3. バックエンドの Redis データベースの復元

デプロイメントを削除し、復元しないリソースを指定することにより、バックエンドの Redis データベースを復元できます。

前提条件

  • Red Hat 3scale API Management Operator のリソースと、Secret および APIManager カスタムリソースを復元した。
  • MySQL データベースを復元した。

手順

  1. 次のコマンドを実行して、backend-redis デプロイメントを削除します。

    $ oc delete deployment backend-redis -n threescale
    Copy to Clipboard

    出力例

    Warning: apps.openshift.io/v1 deployment is deprecated in v4.14+, unavailable in v4.10000+
    
    deployment.apps.openshift.io "backend-redis" deleted
    Copy to Clipboard

  2. Redis データベースを復元するために、次の設定を含む YAML ファイルを作成します。

    restore-backend.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: restore-backend
      namespace: openshift-adp
    spec:
      backupName: redis-backup 
    1
    
      excludedResources:
        - nodes
        - events
        - events.events.k8s.io
        - backups.velero.io
        - restores.velero.io
        - resticrepositories.velero.io
        - csinodes.storage.k8s.io
        - volumeattachments.storage.k8s.io
        - backuprepositories.velero.io
      itemOperationTimeout: 1h0m0s
      restorePVs: true
    Copy to Clipboard

    1
    Redis のバックアップを復元します。
  3. 次のコマンドを実行して、Redis データベースを復元します。

    $ oc create -f restore-backend.yaml
    Copy to Clipboard

    出力例

    restore.velerio.io/restore-backend created
    Copy to Clipboard

検証

  • 次のコマンドを実行して、PodVolumeRestore の復元が完了したことを確認します。

    $ oc get podvolumerestores.velero.io -n openshift-adp
    Copy to Clipboard

    出力例:

    NAME                    NAMESPACE    POD                     UPLOADER TYPE   VOLUME                  STATUS      TOTALBYTES   BYTESDONE   AGE
    restore-backend-jmrwx   threescale   backend-redis-1-bsfmv   kopia           backend-redis-storage   Completed   76123        76123       21m
    Copy to Clipboard

4.21.3.4. 3scale API Management Operator とデプロイメントのスケールアップ

Red Hat 3scale API Management Operator と、手動でスケールダウンしたデプロイメントをスケールアップできます。数分後には、3scale インストールが完全に機能し、バックアップされた状態と一致するはずです。

前提条件

  • 3scale Operator のリソースと、Secret および APIManager カスタムリソース (CR) の両方を復元した。
  • MySQL とバックエンドの Redis データベースを復元した。
  • スケールアップされたデプロイメントや、追加の Pod が実行されていないことを確認した。復元後、デプロイメントから切り離された状態で実行されている system-mysql または backend-redis Pod が存在する可能性がありますが、復元が成功したら削除できます。

手順

  1. 次のコマンドを実行して、3scale Operator をスケールアップします。

    $ oc scale deployment threescale-operator-controller-manager-v2 --replicas=1 -n threescale
    Copy to Clipboard

    出力例

    deployment.apps/threescale-operator-controller-manager-v2 scaled
    Copy to Clipboard

  2. 次のコマンドを実行して、3scale Pod が実行中であることを確認して、3scale Operator がデプロイされたかどうかを確認します。

    $ oc get pods -n threescale
    Copy to Clipboard

    出力例

    NAME									                    READY        STATUS	  RESTARTS	 AGE
    threescale-operator-controller-manager-v2-79546bd8c-b4qbh	1/1	         Running  0          2m5s
    Copy to Clipboard

  3. デプロイメントをスケールアップするためのスクリプトを作成します。

    $ vi ./scaledeployment.sh
    Copy to Clipboard

    スクリプトファイルの例:

    for deployment in apicast-production apicast-staging backend-cron backend-listener backend-redis backend-worker system-app system-memcache system-mysql system-redis system-searchd system-sidekiq zync zync-database zync-que; do
        oc scale deployment/$deployment --replicas=1 -n threescale
    done
    Copy to Clipboard

  4. 次のスクリプトを実行して、デプロイメントをスケールアップします。

    $ ./scaledeployment.sh
    Copy to Clipboard

    出力例

    deployment.apps.openshift.io/apicast-production scaled
    deployment.apps.openshift.io/apicast-staging scaled
    deployment.apps.openshift.io/backend-cron scaled
    deployment.apps.openshift.io/backend-listener scaled
    deployment.apps.openshift.io/backend-redis scaled
    deployment.apps.openshift.io/backend-worker scaled
    deployment.apps.openshift.io/system-app scaled
    deployment.apps.openshift.io/system-memcache scaled
    deployment.apps.openshift.io/system-mysql scaled
    deployment.apps.openshift.io/system-redis scaled
    deployment.apps.openshift.io/system-searchd scaled
    deployment.apps.openshift.io/system-sidekiq scaled
    deployment.apps.openshift.io/zync scaled
    deployment.apps.openshift.io/zync-database scaled
    deployment.apps.openshift.io/zync-que scaled
    Copy to Clipboard

  5. 次のコマンドを実行して、3scale UI にログインするための 3scale-admin ルートを取得します。

    $ oc get routes -n threescale
    Copy to Clipboard

    出力例

    NAME                         HOST/PORT                                                                   PATH   SERVICES             PORT      TERMINATION     WILDCARD
    backend                      backend-3scale.apps.custom-cluster-name.openshift.com                         backend-listener     http      edge/Allow      None
    zync-3scale-api-b4l4d        api-3scale-apicast-production.apps.custom-cluster-name.openshift.com          apicast-production   gateway   edge/Redirect   None
    zync-3scale-api-b6sns        api-3scale-apicast-staging.apps.custom-cluster-name.openshift.com             apicast-staging      gateway   edge/Redirect   None
    zync-3scale-master-7sc4j     master.apps.custom-cluster-name.openshift.com                                 system-master        http      edge/Redirect   None
    zync-3scale-provider-7r2nm   3scale-admin.apps.custom-cluster-name.openshift.com                           system-provider      http      edge/Redirect   None
    zync-3scale-provider-mjxlb   3scale.apps.custom-cluster-name.openshift.com                                 system-developer     http      edge/Redirect   None
    Copy to Clipboard

    この例では、3scale-admin.apps.custom-cluster-name.openshift.com が 3scale-admin URL です。

  6. この出力の URL を使用して、3scale Operator に管理者としてログインします。バックアップを作成したときのデータが利用可能かどうかを確認します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat