7.2. 3scale 用バックエンドコンポーネントの設定
3scale 管理者は、backend-cron、backend-listener、および backend-worker のデプロイメント設定で、back-end コンポーネントの環境変数に Redis HA (フェイルオーバー) を設定します。3scale の Redis HA には、これらの設定が必要です。
Redis と Sentinel を使用するには、3scale をデプロイする前に、ポイントする Redis を設定するためにすべてのフィールドを指定して system-redis シークレットを作成する必要があります。3scale では、フィールドはバックエンドのパラメーターとしては提供されません。
7.2.1. backend-redis と system-redis シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従い、適宜 backend-redis および system-redis シークレットを作成します。
7.2.2. HA 用 3scale の新規インストールのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
single-database Redis インスタンスでデプロイする際にキーの競合を防ぐには、sidekiq キーおよび message_bus Redis キーに異なる namespace を設定します。これは Redis Enterprise および Redis クラスターの両方に適用されます。
sidekiq および message_bus の異なる Redis データベースへの読み取りおよび書き込みがある他のデプロイメントでは、namespace は必要ありません。
以下のパラメーターを使用して Redis キー namespace を設定します。
-
NAMESPACE: Redis データベースのsystem-appおよびsystem-sidekiqによって保存されるジョブキューに関連するエントリー。 -
MESSAGE_BUS_NAMESPACE: Redis データベースにsystem-appにより保存されるプロセス間message_bus通信に関連するエントリーの場合。
手順
以下のフィールドを指定して、
backend-redisおよびsystem-redisシークレットを作成します。backend-redis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow system-redis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Redis と Sentinel を設定する場合、
backend-redisおよびsystem-redisの該当するURLフィールドには、redis://[:redis-password@]redis-group[/db]のフォーマットで Redis グループを指定します。ここで、[x] はオプションの要素 x を意味し、redis-password、redis-group、およびdb変数は適切な値に置き換えてください。例
redis://:redispwd@mymaster/5
redis://:redispwd@mymaster/5Copy to Clipboard Copied! Toggle word wrap Toggle overflow SENTINEL_HOSTSフィールドは、以下のフォーマットの Sentinel 接続文字列のコンマ区切りリストです。redis://:sentinel-password@sentinel-hostname-or-ip:port
redis://:sentinel-password@sentinel-hostname-or-ip:portCopy to Clipboard Copied! Toggle word wrap Toggle overflow リスト内の各要素に関して、[x] はオプションの要素 x を意味し、
sentinel-password、sentinel-hostname-or-ip、およびport変数は適切な値に置き換えてください。例
:sentinelpwd@123.45.67.009:2711,:sentinelpwd@other-sentinel:2722
:sentinelpwd@123.45.67.009:2711,:sentinelpwd@other-sentinel:2722Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
SENTINEL_ROLEフィールドの値は、masterまたはslaveのどちらかです。
最新バージョンのテンプレートを使用して、テンプレートを使用した OpenShift への 3scale のデプロイ に記載の手順に従って 3scale をデプロイします。
-
backend-redisおよびsystem-redisがすでに存在するために表示されるエラーは無視します。
-
7.2.3. 3scale の非 HA デプロイメントの HA への移行 リンクのコピーリンクがクリップボードにコピーされました!
-
HA 用 3scale の新規インストールのデプロイ に記載のとおり、すべてのフィールドを指定して
backend-redisおよびsystem-redisシークレットを編集します。 以下の
backend-redis環境変数がバックエンド Pod に対して定義されていることを確認してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
system-redisの環境変数がsystem-(app|sidekiq|sphinx)Pod に対して定義されていることを確認してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 指示に従って、テンプレートを使用した 3scale のアップグレード を続行します。
7.2.3.1. Redis Enterprise の使用 リンクのコピーリンクがクリップボードにコピーされました!
3 つの異なる
redis-enterpriseインスタンスで、OpenShift にデプロイされた Redis Enterprise を使用します。system-redisシークレットを編集します。-
個別の値を
MESSAGE_BUS_NAMESPACEおよびNAMESPACEに設定します。 -
URLとMESSAGE_BUS_URLを同じデータベースに設定します。
-
個別の値を
-
backend-redisのバックエンドデータベースをREDIS_QUEUES_URLに設定します。 -
backend-redisの 3 番目のデータベースをREDIS_STORAGE_URLに設定します。
7.2.3.2. Redis Sentinel の使用 リンクのコピーリンクがクリップボードにコピーされました!
3 つまたは 4 つの異なる Redis データベースで、Redis Sentinel を使用します。
system-redisシークレットを編集します。-
個別の値を
MESSAGE_BUS_NAMESPACEおよびNAMESPACEに設定します。 -
URLおよびMESSAGE_BUS_URLを適切な Redis グループに設定します (たとえば、redis://:redispwd@mymaster/5)。 -
SENTINEL_HOSTSおよびMESSAGE_BUS_SENTINEL_HOSTSを、Sentinel ホストとポートのコンマ区切りリストに設定します (たとえば、:sentinelpwd@123.45.67.009:2711,:sentinelpwd@other-sentinel:2722)。 -
SENTINEL_ROLEおよびMESSAGE_BUS_SENTINEL_ROLEを master に設定します。
-
個別の値を
バックエンドの
backend-redisシークレットを、以下の値に設定します。-
REDIS_QUEUES_URL -
REDIS_QUEUES_SENTINEL_ROLE -
REDIS_QUEUES_SENTINEL_HOSTS
-
3 番目のデータベースの変数を以下のように設定します。
-
REDIS_STORAGE_URL -
REDIS_STORAGE_SENTINEL_ROLE -
REDIS_STORAGE_SENTINEL_HOSTS
-
注記
system-app および system-sidekiq コンポーネントは、統計を取得するために
back-endRedis に直接接続します。-
3scale 2.7 の時点で、これらのシステムコンポーネントは Sentinel を使用する際にも
back-endRedis (ストレージ) に接続することができます。
-
3scale 2.7 の時点で、これらのシステムコンポーネントは Sentinel を使用する際にも
system-app および system-sidekiq コンポーネントは、
backend-redisストレージ しか使用しません (backend-redisキューは使用しません)。-
システムコンポーネントに加えた変更は、
backend-redisストレージと Sentinel の組み合わせをサポートします。
-
システムコンポーネントに加えた変更は、