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 を設定できます。
- 3scale API Management のバックアップ の手順に従って、3scale コンポーネントのバックアップを作成する。
- 3scale API Management の復元 の手順に従って、コンポーネントを復元し、3scale Operator およびデプロイメントをスケールアップする。
4.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 を参照してください。
4.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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
backup.velero.io/operator-install-backup created
backup.velero.io/operator-install-backup created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の設定を含む YAML ファイルを作成して、
Secret
CR をバックアップします。例:
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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
backup.velero.io/operator-resources-secrets created
backup.velero.io/operator-resources-secrets created
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
backup.velero.io/operator-resources-apim created
backup.velero.io/operator-resources-apim created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.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.yml
Copy 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 threescale
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
backup.velero.io/mysql-backup created
backup.velero.io/mysql-backup created
Copy 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 yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.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 threescale
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
backup.velero.io/redis-backup created
backup.velero.io/redis-backup created
Copy 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 yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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 の設定がソースクラスターと同じであることを確認してください。
手順
次のコマンドを実行して、3scale Operator のカスタムリソース定義 (CRD) と
threescale
namespace を削除します。oc delete project threescale
$ oc delete project threescale
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
"threescale" project deleted successfully
"threescale" project deleted successfully
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
restore.velerio.io/operator-installation-restore created
restore.velerio.io/operator-installation-restore created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
s3-credentials
Secret
オブジェクトを手動で作成します。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 threescale
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.apps/threescale-operator-controller-manager-v2 scaled
deployment.apps/threescale-operator-controller-manager-v2 scaled
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
restore.velerio.io/operator-resources-secrets created
restore.velerio.io/operator-resources-secrets created
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
restore.velerio.io/operator-resources-apim created
restore.velerio.io/operator-resources-apim created
Copy 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 threescale
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.apps/threescale-operator-controller-manager-v2 scaled
deployment.apps/threescale-operator-controller-manager-v2 scaled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.21.3.2. MySQL データベースの復元 リンクのコピーリンクがクリップボードにコピーされました!
MySQL データベースを復元すると、次のリソースが再作成されます。
-
Pod
、ReplicationController
、およびDeployment
オブジェクト。 - 追加の永続ボリューム (PV) と関連する永続ボリューム要求 (PVC)。
-
example-claim
PVC に含まれる 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 threescale
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.apps/threescale-operator-controller-manager-v2 scaled
deployment.apps/threescale-operator-controller-manager-v2 scaled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 3scale Operator をスケールダウンするには、次のスクリプトを作成します。
vi ./scaledowndeployment.sh
$ vi ./scaledowndeployment.sh
Copy 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 done
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 Copied! Toggle word wrap Toggle overflow 次のスクリプトを実行して、すべてのデプロイメント 3scale コンポーネントをスケールダウンします。
./scaledowndeployment.sh
$ ./scaledowndeployment.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
system-mysql
Deployment
オブジェクトを削除します。oc delete deployment system-mysql -n threescale
$ oc delete deployment system-mysql -n threescale
Copy 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" deleted
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
restore.velerio.io/restore-mysql created
restore.velerio.io/restore-mysql created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、
PodVolumeRestore
の復元が完了したことを確認します。oc get podvolumerestores.velero.io -n openshift-adp
$ oc get podvolumerestores.velero.io -n openshift-adp
Copy 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 40m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、追加の PVC が復元されたことを確認します。
oc get pvc -n threescale
$ oc get pvc -n threescale
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.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 threescale
Copy 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" deleted
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
restore.velerio.io/restore-backend created
restore.velerio.io/restore-backend created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、
PodVolumeRestore
の復元が完了したことを確認します。oc get podvolumerestores.velero.io -n openshift-adp
$ oc get podvolumerestores.velero.io -n openshift-adp
Copy 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 21m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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 が存在する可能性がありますが、復元が成功したら削除できます。
手順
次のコマンドを実行して、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 threescale
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
deployment.apps/threescale-operator-controller-manager-v2 scaled
deployment.apps/threescale-operator-controller-manager-v2 scaled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、3scale Pod が実行中であることを確認して、3scale Operator がデプロイされたかどうかを確認します。
oc get pods -n threescale
$ oc get pods -n threescale
Copy 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 2m5s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントをスケールアップするためのスクリプトを作成します。
vi ./scaledeployment.sh
$ vi ./scaledeployment.sh
Copy 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 done
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 Copied! Toggle word wrap Toggle overflow 次のスクリプトを実行して、デプロイメントをスケールアップします。
./scaledeployment.sh
$ ./scaledeployment.sh
Copy 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 threescale
Copy 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 に管理者としてログインします。バックアップを作成したときのデータが利用可能かどうかを確認します。