5.21. OADP と 3scale
5.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 を設定できます。
- 3scale API Management のバックアップ の手順に従って、3scale コンポーネントのバックアップを作成する。
- 3scale API Management の復元 の手順に従って、コンポーネントを復元し、3scale Operator およびデプロイメントをスケールアップする。
5.21.2. OADP を使用した 3scale API Management のバックアップ リンクのコピーリンクがクリップボードにコピーされました!
3scale Operator と、MySQL、Redis などのデータベースをバックアップすることで、Red Hat 3scale API Management のコンポーネントをバックアップできます。
前提条件
- Red Hat 3scale API Management をインストールして設定した。詳細は、OpenShift への 3scale API Management のインストール および Red Hat 3scale API Management を参照してください。
5.21.2.1. Data Protection Application の作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat 3scale API Management 用の Data Protection Application (DPA) カスタムリソース (CR) を作成できます。
手順
次の設定で YAML ファイルを作成します。
dpa.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して DPA CR を作成します。
oc create -f dpa.yaml
$ oc create -f dpa.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.21.2.2. 3scale API Management Operator、シークレット、APIManager のバックアップ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat 3scale API Management Operator のリソースと、Secret および APIManager カスタムリソース (CR) の両方をバックアップできます。
前提条件
- Data Protection Application (DPA) を作成した。
手順
次の設定を含む YAML ファイルを作成して、3scale Operator の CR (
operatorgroup、namespaces、subscriptionsなど) をバックアップします。例:
backup.yamlファイルCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ReplicationControllers、Deployment、Podオブジェクトをバックアップおよび復元して、手動で設定されたすべての環境がバックアップおよび復元されるようにすることもできます。復元フローには影響ありません。次のコマンドを実行してバックアップ CR を作成します。
oc create -f backup.yaml
$ oc create -f backup.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
backup.velero.io/operator-install-backup created
backup.velero.io/operator-install-backup createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の設定を含む YAML ファイルを作成して、
SecretCR をバックアップします。例:
backup-secret.yamlファイルCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップ内の
metadata.nameパラメーターの値は、Secretの復元時に使用されるmetadata.backupNameパラメーターで使用される値と同じです。
次のコマンドを実行して、
Secretバックアップ CR を作成します。oc create -f backup-secret.yaml
$ oc create -f backup-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
backup.velero.io/operator-resources-secrets created
backup.velero.io/operator-resources-secrets createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の設定の YAML ファイルを作成して、APIManager CR をバックアップします。
例: backup-apimanager.yaml ファイル
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップ内の
metadata.nameパラメーターの値は、APIManager の復元時に使用されるmetadata.backupNameパラメーターで使用される値と同じです。
次のコマンドを実行して APIManager CR を作成します。
oc create -f backup-apimanager.yaml
$ oc create -f backup-apimanager.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
backup.velero.io/operator-resources-apim created
backup.velero.io/operator-resources-apim createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.21.2.3. MySQL データベースのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
永続ボリューム要求 (PVC) を作成してアタッチし、指定したパスにダンプされたデータを含めることで、MySQL データベースをバックアップできます。
前提条件
- Red Hat 3scale API Management Operator をバックアップした。
手順
さらに PVC を追加するには、次の設定で YAML ファイルを作成します。
ts_pvc.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して追加の PVC を作成します。
oc create -f ts_pvc.yml
$ oc create -f ts_pvc.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow MySQL ダンプを使用するように
system-mysqlデプロイメントを編集して、PVC をシステムデータベース Pod にアタッチします。oc edit deployment system-mysql -n threescale
$ oc edit deployment system-mysql -n threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ダンプされたデータが含まれる PVC。
MySQL データベースをバックアップするために、次の設定を含む YAML ファイルを作成します。
mysql.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、MySQL データベースをバックアップします。
oc create -f mysql.yaml
$ oc create -f mysql.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
backup.velero.io/mysql-backup created
backup.velero.io/mysql-backup createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、MySQL のバックアップが完了したことを確認します。
oc get backups.velero.io mysql-backup -o yaml
$ oc get backups.velero.io mysql-backup -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.21.2.4. バックエンドの Redis データベースのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
必要なアノテーションを追加し、includedResources パラメーターを使用してバックアップするリソースをリストすることで、Redis データベースをバックアップできます。
前提条件
- Red Hat 3scale API Management Operator をバックアップした。
- MySQL データベースをバックアップした。
- バックアップを実行する前に、Redis キューが空になっている。
手順
次のコマンドを実行して、
backend-redisデプロイメントのアノテーションを編集します。oc edit deployment backend-redis -n threescale
$ oc edit deployment backend-redis -n threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow Redis データベースをバックアップするために、次の設定を含む YAML ファイルを作成します。
redis-backup.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップ内の
metadata.nameパラメーターの値は、Redis データベースの復元時に使用されるmetadata.backupNameパラメーターで使用される値と同じです。
次のコマンドを実行して、Redis データベースをバックアップします。
oc create -f redis-backup.yaml
$ oc create -f redis-backup.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
backup.velero.io/redis-backup created
backup.velero.io/redis-backup createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、Redis のバックアップが完了したことを確認します。
oc get backups.velero.io redis-backup -o yaml
$ oc get backups.velero.io redis-backup -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.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 の復元先のクラスターが、同じカスタムドメインを使用している。
5.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 の設定がソースクラスターと同じであることを確認してください。
手順
次のコマンドを実行して、3scale Operator のカスタムリソース定義 (CRD) と
threescalenamespace を削除します。oc delete project threescale
$ oc delete project threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
"threescale" project deleted successfully
"threescale" project deleted successfullyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 3scale Operator を復元するために、次の設定を含む YAML ファイルを作成します。
restore.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 3scale Operator のバックアップを復元します。
次のコマンドを実行して、3scale Operator を復元します。
oc create -f restore.yaml
$ oc create -f restore.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
restore.velerio.io/operator-installation-restore created
restore.velerio.io/operator-installation-restore createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
s3-credentialsSecretオブジェクトを手動で作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、3scale Operator をスケールダウンします。
oc scale deployment threescale-operator-controller-manager-v2 --replicas=0 -n threescale
$ oc scale deployment threescale-operator-controller-manager-v2 --replicas=0 -n threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.apps/threescale-operator-controller-manager-v2 scaled
deployment.apps/threescale-operator-controller-manager-v2 scaledCopy to Clipboard Copied! Toggle word wrap Toggle overflow Secretを復元するために、次の設定を含む YAML ファイルを作成します。restore-secret.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Secretのバックアップを復元します。
次のコマンドを実行して、
Secretを復元します。oc create -f restore-secrets.yaml
$ oc create -f restore-secrets.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
restore.velerio.io/operator-resources-secrets created
restore.velerio.io/operator-resources-secrets createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow APIManager を復元するために、次の設定を含む YAML ファイルを作成します。
restore-apimanager.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、APIManager を復元します。
oc create -f restore-apimanager.yaml
$ oc create -f restore-apimanager.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
restore.velerio.io/operator-resources-apim created
restore.velerio.io/operator-resources-apim createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、3scale Operator をスケールアップします。
oc scale deployment threescale-operator-controller-manager-v2 --replicas=1 -n threescale
$ oc scale deployment threescale-operator-controller-manager-v2 --replicas=1 -n threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.apps/threescale-operator-controller-manager-v2 scaled
deployment.apps/threescale-operator-controller-manager-v2 scaledCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.21.3.2. MySQL データベースの復元 リンクのコピーリンクがクリップボードにコピーされました!
MySQL データベースを復元すると、次のリソースが再作成されます。
-
Pod、ReplicationController、およびDeploymentオブジェクト。 - 追加の永続ボリューム (PV) と関連する永続ボリューム要求 (PVC)。
-
example-claimPVC に含まれる MySQL ダンプ。
データベースに関連付けられているデフォルトの PV と PVC は削除しないでください。削除すると、バックアップが削除されます。
前提条件
-
Secretおよび APIManager カスタムリソース (CR) を復元した。
手順
次のコマンドを実行して、Red Hat 3scale API Management Operator をスケールダウンします。
oc scale deployment threescale-operator-controller-manager-v2 --replicas=0 -n threescale
$ oc scale deployment threescale-operator-controller-manager-v2 --replicas=0 -n threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.apps/threescale-operator-controller-manager-v2 scaled
deployment.apps/threescale-operator-controller-manager-v2 scaledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 3scale Operator をスケールダウンするには、次のスクリプトを作成します。
vi ./scaledowndeployment.sh
$ vi ./scaledowndeployment.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow スクリプトの例:
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 donefor 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 doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のスクリプトを実行して、すべてのデプロイメント 3scale コンポーネントをスケールダウンします。
./scaledowndeployment.sh
$ ./scaledowndeployment.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
system-mysqlDeploymentオブジェクトを削除します。oc delete deployment system-mysql -n threescale
$ oc delete deployment system-mysql -n threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Warning: apps.openshift.io/v1 deployment is deprecated in v4.14+, unavailable in v4.10000+ deployment.apps.openshift.io "system-mysql" deleted
Warning: apps.openshift.io/v1 deployment is deprecated in v4.14+, unavailable in v4.10000+ deployment.apps.openshift.io "system-mysql" deletedCopy to Clipboard Copied! Toggle word wrap Toggle overflow MySQL データベースを復元するための次の YAML ファイルを作成します。
restore-mysql.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、MySQL データベースを復元します。
oc create -f restore-mysql.yaml
$ oc create -f restore-mysql.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
restore.velerio.io/restore-mysql created
restore.velerio.io/restore-mysql createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、
PodVolumeRestoreの復元が完了したことを確認します。oc get podvolumerestores.velero.io -n openshift-adp
$ oc get podvolumerestores.velero.io -n openshift-adpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
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
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 40mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、追加の PVC が復元されたことを確認します。
oc get pvc -n threescale
$ oc get pvc -n threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.21.3.3. バックエンドの Redis データベースの復元 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメントを削除し、復元しないリソースを指定することにより、バックエンドの Redis データベースを復元できます。
前提条件
-
Red Hat 3scale API Management Operator のリソースと、
Secretおよび APIManager カスタムリソースを復元した。 - MySQL データベースを復元した。
手順
次のコマンドを実行して、
backend-redisデプロイメントを削除します。oc delete deployment backend-redis -n threescale
$ oc delete deployment backend-redis -n threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Warning: apps.openshift.io/v1 deployment is deprecated in v4.14+, unavailable in v4.10000+ deployment.apps.openshift.io "backend-redis" deleted
Warning: apps.openshift.io/v1 deployment is deprecated in v4.14+, unavailable in v4.10000+ deployment.apps.openshift.io "backend-redis" deletedCopy to Clipboard Copied! Toggle word wrap Toggle overflow Redis データベースを復元するために、次の設定を含む YAML ファイルを作成します。
restore-backend.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Redis のバックアップを復元します。
次のコマンドを実行して、Redis データベースを復元します。
oc create -f restore-backend.yaml
$ oc create -f restore-backend.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
restore.velerio.io/restore-backend created
restore.velerio.io/restore-backend createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、
PodVolumeRestoreの復元が完了したことを確認します。oc get podvolumerestores.velero.io -n openshift-adp
$ oc get podvolumerestores.velero.io -n openshift-adpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
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
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 21mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.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-redisPod が存在する可能性がありますが、復元が成功したら削除できます。
手順
次のコマンドを実行して、3scale Operator をスケールアップします。
oc scale deployment threescale-operator-controller-manager-v2 --replicas=1 -n threescale
$ oc scale deployment threescale-operator-controller-manager-v2 --replicas=1 -n threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.apps/threescale-operator-controller-manager-v2 scaled
deployment.apps/threescale-operator-controller-manager-v2 scaledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、3scale Pod が実行中であることを確認して、3scale Operator がデプロイされたかどうかを確認します。
oc get pods -n threescale
$ oc get pods -n threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE threescale-operator-controller-manager-v2-79546bd8c-b4qbh 1/1 Running 0 2m5s
NAME READY STATUS RESTARTS AGE threescale-operator-controller-manager-v2-79546bd8c-b4qbh 1/1 Running 0 2m5sCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントをスケールアップするためのスクリプトを作成します。
vi ./scaledeployment.sh
$ vi ./scaledeployment.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow スクリプトファイルの例:
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 donefor 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 doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のスクリプトを実行して、デプロイメントをスケールアップします。
./scaledeployment.sh
$ ./scaledeployment.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、3scale UI にログインするための
3scale-adminルートを取得します。oc get routes -n threescale
$ oc get routes -n threescaleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
3scale-admin.apps.custom-cluster-name.openshift.comが 3scale-admin URL です。- この出力の URL を使用して、3scale Operator に管理者としてログインします。バックアップを作成したときのデータが利用可能かどうかを確認します。