Red Hat 3scale API Management の移行
3scale API Management およびそのコンポーネントの移行またはアップグレード
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
このガイドでは、3scale Operator を介して Red Hat 3scale API Management を最新バージョンにアップグレードするための情報を提供します。3scale インストールを 2.14 から 2.15 にアップグレードするために必要な詳細と、Operator ベースのデプロイメントで APIcast をアップグレードする手順が記載されています。
3scale オンプレミスデプロイメントをアップグレードするには、次のガイドを参照してください。
Operator ベースのデプロイメントで APIcast をアップグレードするには、以下のガイドを参照してください。
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに関するご意見やご感想をお寄せください。
改善を提案するには、Jira 課題を作成し、変更案を説明してください。ご要望に迅速に対応できるよう、できるだけ詳細にご記入ください。
前提条件
- Red Hat カスタマーポータルのアカウントがある。このアカウントを使用すると、Red Hat Jira Software インスタンスにログインできます。アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- Create issue にアクセスします。
- Summary テキストボックスに、問題の簡単な説明を入力します。
Description テキストボックスに、次の情報を入力します。
- 問題が見つかったページの URL。
-
問題の詳細情報
他のフィールドの情報はデフォルト値のままにすることができます。
- Create をクリックして、Jira 課題をドキュメントチームに送信します。
フィードバックをご提供いただきありがとうございました。
第1章 3scale API Management Operator ベースのアップグレードガイド: 2.14 から 2.15 リンクのコピーリンクがクリップボードにコピーされました!
Operator ベースのインストールで Red Hat 3scale API Management をバージョン 2.14 から 2.15 にアップグレードして、OpenShift 4.x で 3scale を管理できるようにします。
3scale のマイクロリリースを自動的に取得するには、自動更新が有効であることを確認してください。Oracle 外部データベースを使用している場合は、自動更新を設定しないでください。これを確認するには、マイクロリリースの自動アプリケーションの設定 を参照してください。
必要な条件および手順を理解するために、記載の手順を適用する前に、アップグレードガイド全体を読んでください。アップグレードプロセスの手順が完了するまで、サービスの提供が中断されます。このサービス中断が生じるため、メンテナンス期間を設けるようにしてください。
1.1. アップグレードを行うための前提条件 リンクのコピーリンクがクリップボードにコピーされました!
3scale Operator で証明書の検証の失敗を解決するには、影響を受けるカスタムリソース (CR) に 証明書の検証をスキップ するアノテーションを追加します。このアノテーションは、作成時に CR に適用するか、または既存の CR に追加できます。適用すると、エラーが調整されます。
このセクションでは、operator ベースのインストール環境において、3scale を 2.14 から 2.15 にアップグレードするのに必要な設定を説明します。
- OpenShift Container Platform (OCP) 4.12、4.13、4.14、4.15、4.16、または 4.17 クラスターおよびその管理者アクセスOCP 環境がバージョン 4.12 以上にアップグレードされていることを確認します。これは、3scale の更新を続行するための最小要件です。
- 3scale operator によりデプロイされている 3scale 2.14
threescale-2.14チャネルの最新 CSV が使用されていることを確認します。この点を確認するには、以下を行います。- サブスクリプションの承認設定が automatic の場合は、すでにチャネルの最新 CSV バージョンになっているはずです。
- サブスクリプションの承認設定が manual の場合、保留中のすべての InstallPlans を承認し、最新の CSV バージョンになっていることを確認してください。
- 保留中のインストールプランがある場合、さらに保留中のインストールプランがある可能性があり、既存の保留中のプランがインストールされた後にのみ表示されることに注意してください。
1.1.1. 3scale API Management 2.15 事前チェック リンクのコピーリンクがクリップボードにコピーされました!
- データベースがアップグレードされていない場合、3scale インスタンスは 2.15 にアップグレードされません。
- 3scale 2.15 Operator が実行されているかどうかにかかわらず、データベースをアップグレードできます。Operator が実行されている場合は、10 分ごとにデータベースのバージョンがチェックされ、アップグレードプロセスが自動的にトリガーされます。アップグレード時に Operator が実行されていない場合、スケールバックされます。要件を確認してインストールを続行するには、これを実行する必要があります。
Operator を使用して 3scale 2.15 をインストールする前に、データベースコンポーネントが最小バージョン要件を満たしていることを確認してください。この事前チェックは、アップグレード中に 3scale インスタンスが破損することを防ぐために重要です。
1.1.1.1. コンポーネントと最小バージョン要件 リンクのコピーリンクがクリップボードにコピーされました!
- Oracle Database はチェックされません。
- Oracle のシステムデータベースはチェックされません。
- 外部データベースを使用する Zync はチェックされません。
次のコンポーネントが指定されたバージョン以上であることを確認します。
システムアプリケーションコンポーネント:
- MySQL: 8.0.0
- PostgreSQL: 10.0.0
バックエンドコンポーネント:
- Redis: 6.2 (インスタンスが 2 つ必要)
バージョン検証
MySQL のバージョンを確認します。
mysql --version
$ mysql --versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL のバージョンを確認します。
psql --version
$ psql --versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow Redis のバージョンを確認します。
redis-server --version
$ redis-server --versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.1.2. 要件を満たしていないデータベースのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
データベースのバージョンが最小要件を満たしていない場合は、次の手順を実行してください。
3scale 2.15 Operator をインストール します。
- 2.15 Operator は、データベースのバージョンに関係なくインストールされています。
データベースをアップグレードします。
- 最小バージョン要件を満たすように、MySQL、PostgreSQL、または Redis をアップグレードします。
- 注記: 各データベースのアップグレード手順は、公式ドキュメントを確認してください。
2.15 のアップグレードを再開します。
- データベースがアップグレードされると、3scale 2.15 Operator が新しいバージョンを検出します。
- その後、3scale 2.15 へのアップグレードプロセスが自動的に進行します。
これらの事前チェックを実行し、データベースコンポーネントが最新であることを確認することで、3scale 2.15 に移行できます。
1.2. Operator ベースのインストール環境における 2.14 から 2.15 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
operator ベースのデプロイメントにおいて、3scale をバージョン 2.14 から 2.15 にアップグレードするには、以下の手順を実施します。
- 管理者権限を持つアカウントを使用して OCP コンソールにログインします。
- 3scale-operator がデプロイされているプロジェクトを選択します。
- Operators > Installed Operators の順にクリックします。
- Red Hat Integration - 3scale > Subscription > Channel の順に選択します。
threescale-2.15 を選択してサブスクリプションのチャンネルを編集し、変更を保存します。
これによりアップグレードプロセスが開始されます。
すべての新しいバージョンが実行され、エラーなく準備ができていることを確認するまで、プロジェクトで Pod の状態を照会します。
oc get pods -n <3scale_namespace>
$ oc get pods -n <3scale_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記- Pod ではアップグレードプロセス中、一時的にエラーが発生する場合があります。
- Pod のアップグレードに必要な時間は、5~10 分程度です。
- 新しい Pod のバージョンの実行後に、3scale Admin Portal にログインして、想定どおりに動作することをチェックし、アップグレードが正常に行われたことを確認します。
以下のコマンドを実行して、APIManager オブジェクトのステータスを確認し、YAML コンテンツを取得します。<myapimanager> は、APIManager の名前を表します。
oc get apimanager <myapimanager> -n <3scale_namespace> -o yaml
$ oc get apimanager <myapimanager> -n <3scale_namespace> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいアノテーションおよび値は以下のようになります。
apps.3scale.net/apimanager-threescale-version: "2.15" apps.3scale.net/threescale-operator-version: "0.12.x"
apps.3scale.net/apimanager-threescale-version: "2.15" apps.3scale.net/threescale-operator-version: "0.12.x"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
上記の手順をすべて実行すると、Operator ベースのデプロイメントにおける 3scale 2.14 から 2.15 へのアップグレードが完了します。
1.3. 外部の Oracle データベースを使用した operator ベースのインストールにおける 2.14 から 2.15 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、外部の Oracle データベースを使用して 3scale operator ベースのインストールを更新します。
手順
-
Red Hat 3scale API Management のインストールガイド の手順に従って、新しい
system-oracle-3scale-2.14.0-1イメージを作成します。 - 3scale Operator をアップグレードするには、link:h:Link3scaleMigrating3scale: Operator ベースのインストールで 2.14 から 2.15 にアップグレードする に手順に従います。
- アップグレードが完了したら、Operator を使用した Oracle での 3scale API Management のインストール で説明されているように、この手順の最初のステップで作成した新しいイメージで APIManager カスタムリソースを更新します。
第2章 APIcast 2.14 から 2.15 への Operator ベースのアップグレードガイド リンクのコピーリンクがクリップボードにコピーされました!
オペレータベースのインストールで APIcast を 2.14 から 2.15 にアップグレードすると、APIcast API ゲートウェイを使用して、内部および外部のアプリケーションプログラミングインターフェイス (API) サービスを 3scale と統合できます。
必要な条件および手順を理解するために、記載の手順を適用する前に、アップグレードガイド全体を読んでください。アップグレードプロセスの手順が完了するまで、サービスの提供が中断されます。このサービス中断が生じるため、メンテナンス期間を設けるようにしてください。
2.1. アップグレードを行うための前提条件 リンクのコピーリンクがクリップボードにコピーされました!
operator ベースのインストールで APIcast を 2.14 から 2.15 にアップグレードするには、以下の前提条件を満たしている必要があります。
- OpenShift Container Platform (OCP) 4.12、4.13、4.14、4.15、4.16、または 4.17 クラスターおよびその管理者アクセスOCP 環境がバージョン 4.12 以上にアップグレードされていることを確認します。これは、APIcast の更新を続行するための最小要件です。
- APIcast operator によりデプロイされている APIcast 2.14
threescale-2.14チャネルの最新 CSV が使用されていることを確認します。この点を確認するには、以下を行います。- サブスクリプションの承認設定が automatic の場合は、すでにチャネルの最新 CSV バージョンになっているはずです。
- サブスクリプションの承認設定が manual の場合、保留中のすべての InstallPlans を承認し、最新の CSV バージョンになっていることを確認してください。
- 保留中のインストールプランがある場合、さらに保留中のインストールプランがある可能性があり、既存の保留中のプランがインストールされた後にのみ表示されることに注意してください。
2.2. Operator ベースのインストール環境における APIcast 2.14 から 2.15 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
operator ベースのインストールで、APIcast を 2.14 から 2.15 にアップグレードし、APIcast が 3scale のインストールで API ゲートウェイとして機能するようにします。
手順
- 管理者権限を持つアカウントを使用して OCP コンソールにログインします。
- APIcast operator がデプロイされているプロジェクトを選択します。
- Operators > Installed Operators の順にクリックします。
- Subscription > Channel の順に移動し、Red Hat Integration - 3scale APIcast gateway を選択します。
threescale-2.15 チャンネルを選択してサブスクリプションのチャンネルを編集し、変更を保存します。
これによりアップグレードプロセスが開始されます。
すべての新しいバージョンが実行され、エラーなく準備ができていることを確認するまで、プロジェクトで Pod の状態を照会します。
oc get pods -n <apicast_namespace>
$ oc get pods -n <apicast_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記- Pod ではアップグレードプロセス中、一時的にエラーが発生する場合があります。
- Pod のアップグレードに必要な時間は、5~10 分程度です。
APIcast オブジェクトのステータスを確認し、以下のコマンドを実行して YAML のコンテンツを取得します。
oc get apicast <myapicast> -n <apicast_namespace> -o yaml
$ oc get apicast <myapicast> -n <apicast_namespace> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいアノテーションおよび値は以下のようになります。
apicast.apps.3scale.net/operator-version: "0.12.x"
apicast.apps.3scale.net/operator-version: "0.12.x"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
上記の手順をすべて実行すると、Operator ベースのデプロイメントにおける APIcast 2.14 から 2.15 へのアップグレードが完了します。
第3章 組み込み PostgreSQL 10 データベースから外部 PostgreSQL 10 データベースへの移行 リンクのコピーリンクがクリップボードにコピーされました!
-
system.appSpec.replicasを1にスケーリングする前に、データベースをサポートされているバージョン (現在 PostgreSQL 13) にアップグレードする必要があります。Red Hat 3scale API Management のサポート対象設定 を参照してください。 - このドキュメントは、組み込み PostgreSQL 10 データベースから外部 PostgreSQL 10 データベースへの移行を説明します。外部 PostgreSQL 10 データベースから外部 PostgreSQL 13 データベースにアップグレードするには、PostgreSQL の公式ドキュメント に従う必要があります。
- 免責事項: ここに記載されている外部 Web サイトへのリンクは、お客様の利便性のみを目的として提供されています。Red Hat はリンクの内容を確認しておらず、コンテンツまたは可用性に責任を負わないものとします。外部 Web サイトへのリンクが含まれていても、Red Hat が Web サイトまたはその組織、製品、もしくはサービスを保証することを意味するものではありません。お客様は、外部サイトまたはコンテンツの使用 (または信頼) によって生じる損失または費用について、Red Hat が責任を負わないことに同意するものとします。
組み込み PostgreSQL データベースから外部 PostgreSQL データベースに移行するプロセスは、同じ DB バージョンで実行する必要があります。この移行ガイドは、PostgreSQL 10 である必要があります。運用環境には外部データベースを使用する必要があります。
system-database として PostgreSQL を使用している場合は、3scale での 外部データベースのインストール にサポートされているバージョンを使用してください。
- これらの手順は一般的なガイドラインです。正確な手順は、オペレーティングシステム、PostgreSQL のバージョン、データベースの特定要件によって異なる場合があります。
- アップグレードする前に、PostgreSQL のドキュメント とリリースノートをよく読んでください。
- この手順を実稼働環境に適用する前に、非実稼働環境でテストしてください。
- このプロセスの手順が完了するまで、サービスの提供が中断されます。このサービス中断が生じるため、メンテナンス期間を設けるようにしてください。
手順
APIManager カスタマーリソース (CR) を使用して、
system-appの DeploymentConfig (DC) をスケールダウンします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod がスケールダウンされていることを確認します。
oc get deploymentconfig system-app -o jsonpath='{.status.availableReplicas}{"\n"}'$ oc get deploymentconfig system-app -o jsonpath='{.status.availableReplicas}{"\n"}' 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
PostgreSQL の移行を続行する前に、すべての 3scale Pod のステータスが
Terminatedになるまで待ちます。
-
PostgreSQL の移行を続行する前に、すべての 3scale Pod のステータスが
すべてのデータ、設定、ユーザーアカウントを含む既存の PostgreSQL データベースのバックアップを作成します。
DB_USER=$(oc get secret system-database -o jsonpath="{.data.DB_USER}" | base64 --decode) DATABASE_NAME=$(oc get secret system-database -o jsonpath="{.data.URL}" | base64 --decode | cut -d '/' -f4)$ DB_USER=$(oc get secret system-database -o jsonpath="{.data.DB_USER}" | base64 --decode) $ DATABASE_NAME=$(oc get secret system-database -o jsonpath="{.data.URL}" | base64 --decode | cut -d '/' -f4)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要stdoutにパイプしないでください。バイナリーファイルが破損します。カスタム形式でダンプします。
oc rsh $(oc get pods -l 'deploymentConfig=system-postgresql' -o json | jq -r '.items[0].metadata.name') bash -c "pg_dump -U $DB_USER -F c $DATABASE_NAME -f /tmp/<backupfilename>.backup"
$ oc rsh $(oc get pods -l 'deploymentConfig=system-postgresql' -o json | jq -r '.items[0].metadata.name') bash -c "pg_dump -U $DB_USER -F c $DATABASE_NAME -f /tmp/<backupfilename>.backup"Copy to Clipboard Copied! Toggle word wrap Toggle overflow バックアップをダウンロードします。
oc cp $(oc get pods -l 'deploymentConfig=system-postgresql' -o json | jq -r '.items[0].metadata.name'):/tmp/<backupfilename>.backup <backupfilename>.backup
$ oc cp $(oc get pods -l 'deploymentConfig=system-postgresql' -o json | jq -r '.items[0].metadata.name'):/tmp/<backupfilename>.backup <backupfilename>.backupCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 3scale にデプロイしたのと同じバージョンの PostgreSQL 10 をターゲットの外部システムにインストールします。インストール手順に従って、PostgreSQL Web サイトからインストールパッケージをダウンロードします。
- 既存の PostgreSQL データベースで作成したバックアップ (すべてのデータ、設定、ユーザーアカウントを含む) をターゲットの外部システムにコピーして復元します。
PostgreSQL で新しいデータベースを作成します。
createdb -U <username> <databasename>
$ createdb -U <username> <databasename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow バックアップファイルから新しい PostgreSQL データベースにデータをインポートします。
カスタム形式で復元します。
pg_restore [--host <databasehostname>] -U <username> -d <databasename> --verbose -F c <backupfilename>.backup
$ pg_restore [--host <databasehostname>] -U <username> -d <databasename> --verbose -F c <backupfilename>.backupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
データベースに接続してクエリーを実行し、データが新しい PostgreSQL データベースに正常にインポートされたことを確認します。
postgresql://<username>:<password>@<databasehostname>/<databasename>
postgresql://<username>:<password>@<databasehostname>/<databasename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow system-databaseシークレットを更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow APImanager CR を更新して外部データベースを有効にし、システムをスケールアップします。
oc patch apimanager <apimanager_sample> --type=merge --patch '{"spec": {"system": {"database": null, "appSpec": {"replicas": 1}}, "externalComponents": {"system": {"database": true}}}}'$ oc patch apimanager <apimanager_sample> --type=merge --patch '{"spec": {"system": {"database": null, "appSpec": {"replicas": 1}}, "externalComponents": {"system": {"database": true}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow ローカルの postgresql デプロイメントを削除します。
oc delete service system-postgresql oc delete deploymentconfig system-postgresql oc delete pvc postgresql-data
$ oc delete service system-postgresql $ oc delete deploymentconfig system-postgresql $ oc delete pvc postgresql-dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pod がスケールアップされていることを確認します。
oc wait --for=condition=available apimanager/<apimanager_sample> --timeout=-1s
$ oc wait --for=condition=available apimanager/<apimanager_sample> --timeout=-1sCopy to Clipboard Copied! Toggle word wrap Toggle overflow