1.4. Operator を使用した 3scale API Management のデプロイ
このセクションでは、APIManager カスタムリソース (CR) を使用して、3scale Operator 経由で 3scale ソリューションをインストールおよびデプロイする方法を説明します。
ワイルドカードルートは、3scale 2.6 以降 廃止されています。
- この機能は、バックグラウンドで Zync により処理されます。
- API プロバイダーが作成、更新、または削除されると、これらの変更が自動的にルートに反映されます。
前提条件
- 3scale Operator で自動承認機能を有効にして 3scale のマイクロリリースの自動更新が確実に受信されるようにする。Automatic はデフォルトの承認設定です。これを特定のニーズに合わせて変更するには、マイクロリリースの自動アプリケーションの設定 の手順を使用します。
- Operator を使用して 3scale API Management をデプロイするには、まず OpenShift への 3scale API Management オペレーターのインストール の手順に従う必要があります。
OpenShift Container Platform 4
- OpenShift クラスターの管理者権限を持つユーザーアカウント。
- サポート対象設定の情報は、Red Hat 3scale API Management のサポートされる構成 を参照してください。
以下の手順に従って、Operator を使用して 3scale をデプロイします。
1.4.1. APIManager カスタムリソースのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Amazon Simple Storage Service (Amazon S3) を使用する場合は、Amazon Simple Storage Service 3scale API Management fileStorage のインストール を参照してください。
Operator は APIManager CR を監視し、APIManager CR で指定されているように、必要な 3scale ソリューションをデプロイします。
手順
Operators > Installed Operators の順にクリックします。
- Installed Operators のリストで、Red Hat Integration - 3scale をクリックします。
- API Manager タブをクリックします。
- Create APIManager をクリックします。
サンプルのコンテンツを消去して以下の YAML 定義をエディターに追加し、続いて Create をクリックします。
3scale 2.8 より前のバージョンでは、
highAvailabilityフィールドをtrueに設定してレプリカの自動追加を設定できるようになりました。3scale 2.8 以降、レプリカの追加は以下の例のように APIManager CR の replicas フィールドによって制御されます。注記wildcardDomain パラメーターの値は、OpenShift Container Platform (OCP) ルーターのアドレスに解決される有効なドメイン名である必要があります。たとえば、
apps.mycluster.example.comになります。最小要件のある APIManager CR:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow レプリカが設定された APIManager CR:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4.2. 管理ポータルの URL の取得 リンクのコピーリンクがクリップボードにコピーされました!
Operator を使用して 3scale をデプロイすると、固定 URL (3scale-admin.${wildcardDomain}) のデフォルトテナントが作成されます。
wildcardDomain は、インストール中に指定した <wildCardDomain> パラメーターです。以下のコマンドを使用し、ブラウザーでこの一意の URL を開きます。
xdg-open https://3scale-admin.3scale-project.example.com
$ xdg-open https://3scale-admin.3scale-project.example.com
オプションとして、マスターポータル URL (master.${wildcardDomain}) に新しいテナントを作成できます。
1.4.3. APIManager 管理ポータルとマスター管理ポータルの認証情報を取得する リンクのコピーリンクがクリップボードにコピーされました!
<namespace> を、APIManager リソースが作成された namespace の名前に置き換えます。
Operator ベースのデプロイ後に 3scale 管理ポータルまたはマスター管理ポータルのいずれかにログインするには、個別のポータルごとに認証情報が必要です。これらの認証情報を取得するには:
次のコマンドを実行して、管理ポータルの認証情報を取得します。
oc get secret system-seed -n <namespace> -o json | jq -r .data.ADMIN_USER | base64 -d oc get secret system-seed -n <namespace> -o json | jq -r .data.ADMIN_PASSWORD | base64 -d
$ oc get secret system-seed -n <namespace> -o json | jq -r .data.ADMIN_USER | base64 -d $ oc get secret system-seed -n <namespace> -o json | jq -r .data.ADMIN_PASSWORD | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Admin Portal 管理者としてログインして、これらの認証情報が機能していることを確認します。
次のコマンドを実行して、マスター管理ポータルの認証情報を取得します。
oc get secret system-seed -n <namespace> -o json | jq -r .data.MASTER_USER | base64 -d oc get secret system-seed -n <namespace> -o json | jq -r .data.MASTER_PASSWORD | base64 -d
$ oc get secret system-seed -n <namespace> -o json | jq -r .data.MASTER_USER | base64 -d $ oc get secret system-seed -n <namespace> -o json | jq -r .data.MASTER_PASSWORD | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow - マスター管理ポータル管理者としてログインして、これらの認証情報が機能していることを確認します。
オプションとして、マスターポータル URL (master.${wildcardDomain}) に新しいテナントを作成できます。
1.4.4. Operator を使用した 3scale API Management の外部データベース リンクのコピーリンクがクリップボードにコピーされました!
Red Hat 3scale API Management デプロイメントからデータベースを外部化すると、アプリケーションからの分離とデータベースレベルでのサービス中断に対する回復力が提供されることになります。サービス中断に対する復元力は、データベースをホストするインフラストラクチャーまたはプラットフォームプロバイダーが提供するサービスレベルアグリーメント (SLA) によって異なります。これは 3scale では提供されていません。選択したデプロイメントによって提供されるデータベースの外部化の詳細は、関連ドキュメントを参照してください。
Operator を使用して 3scale の外部データベースを使用する場合、その目的は、たとえば 1 つ以上のデータベースに障害が発生した場合でも、中断のない稼働時間を提供することです。
3scale Operator ベースのデプロイメントで外部データベースを使用する場合は、次の点に注意してください。
- 3scale の重要なデータベースを外部に設定し、デプロイします。重要なデータベースには、システムデータベース、システム redis およびバックエンド redis コンポーネントが含まれます。これらのコンポーネントが高可用性となるようにデプロイおよび設定するようにしてください。
3scale をデプロイする前に対応する Kubernetes シークレットを作成して、3scale のこれらのコンポーネントへの接続エンドポイントを指定します。
- 詳細は、外部データベースモードでのインストール を参照してください。
- データベース以外のデプロイメント設定の詳細は、Enabling Pod Disruption Budgets を参照してください。
APIManagerCR で、.spec.externalComponents属性を設定して、システムデータベース、システム redis およびバックエンド redis が外部であることを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
さらに zync データベースを高可用性にして、再起動時のキュージョブデータを失う可能性をなくす場合は、以下の点に注意してください。
- zync データベースを外部でデプロイおよび設定します。このデータベースを高可用性の設定でデプロイおよび設定するようにしてください。
3scale をデプロイする前に対応する Kubernetes シークレットを作成して、3scale の zync データベースへの接続エンドポイントを指定します。
- Zync データベースシークレット を参照してください。
-
3scale を設定するには、
APIManagerCR の.spec.externalComponents.zync.database属性をtrueに設定し、zync データベースが外部データベースであることを指定します。