4.2. 3scale 用バックエンドコンポーネントの設定
3scale 管理者は、backend-cron
、backend-listener
、および backend-worker
のデプロイメント設定で、back-end
コンポーネントの環境変数に Redis HA (フェイルオーバー) を設定します。3scale の Redis HA には、これらの設定が必要です。
Redis と Sentinel を使用するには、backend-redis
あるいはsystem-redis
、またはその両方のシークレットに Sentinel 設定を指定する必要があります。
4.2.1. backend-redis
と system-redis
シークレットの作成
以下の手順に従い、適宜 backend-redis
および system-redis
シークレットを作成します。
4.2.2. HA 用 3scale の新規インストールのデプロイ
手順
以下のフィールドを指定して、
backend-redis
およびsystem-redis
シークレットを作成します。backend-redis
REDIS_QUEUES_SENTINEL_HOSTS REDIS_QUEUES_SENTINEL_ROLE REDIS_QUEUES_URL REDIS_STORAGE_SENTINEL_HOSTS REDIS_STORAGE_SENTINEL_ROLE REDIS_STORAGE_URL
system-redis
NAMESPACE SENTINEL_HOSTS SENTINEL_ROLE URL
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
SENTINEL_HOSTS
フィールドは、以下のフォーマットの Sentinel 接続文字列のコンマ区切りリストです。redis://:sentinel-password@sentinel-hostname-or-ip:port
リスト内の各要素に関して、[x] はオプションの要素 x を意味し、
sentinel-password
、sentinel-hostname-or-ip
、およびport
変数は適切な値に置き換えてください。例
:sentinelpwd@123.45.67.009:2711,:sentinelpwd@other-sentinel:2722
-
SENTINEL_ROLE
フィールドの値は、master
またはslave
のどちらかです。
operator を使用した 3scale のデプロイ に記載の手順に従って 3scale を デプロイします。
-
backend-redis
およびsystem-redis
がすでに存在するために表示されるエラーは無視します。
-
4.2.3. 3scale の非 HA デプロイメントの HA への移行
-
HA 用 3scale の新規インストールのデプロイ に記載のとおり、すべてのフィールドを指定して
backend-redis
およびsystem-redis
シークレットを編集します。 以下の
backend-redis
環境変数がバックエンド Pod に対して定義されていることを確認してください。name: BACKEND_REDIS_SENTINEL_HOSTS valueFrom: secretKeyRef: key: REDIS_STORAGE_SENTINEL_HOSTS name: backend-redis name: BACKEND_REDIS_SENTINEL_ROLE valueFrom: secretKeyRef: key: REDIS_STORAGE_SENTINEL_ROLE name: backend-redis
以下の
system-redis
の環境変数がsystem-(app|sidekiq|sphinx)
Pod に対して定義されていることを確認してください。name: REDIS_SENTINEL_HOSTS valueFrom: secretKeyRef: key: SENTINEL_HOSTS name: system-redis name: REDIS_SENTINEL_ROLE valueFrom: secretKeyRef: key: SENTINEL_ROLE name: system-redis
- 指示に従って、テンプレートを使用した 3scale のアップグレード を続行します。
4.2.3.1. Redis Enterprise の使用
3 つの異なる
redis-enterprise
インスタンスで、OpenShift にデプロイされた Redis Enterprise を使用します。system-redis
シークレットを編集します。-
system-redis
のシステム redis データベースをURL
に設定します。
-
-
backend-redis
のバックエンドデータベースをREDIS_QUEUES_URL
に設定します。 -
backend-redis
の 3 番目のデータベースをREDIS_STORAGE_URL
に設定します。
4.2.3.2. Redis Sentinel の使用
オプションで、Redis Sentinel をデータベースのいずれかに適用できます。ただし、Red Hat は、HA 用に Redis Sentinel をすべてに適用することを推奨します。
統計のバックエンド redis:
backend-redis
シークレットを更新し、以下の値を指定します。-
REDIS_STORAGE_URL
-
REDIS_STORAGE_SENTINEL_ROLE
REDIS_STORAGE_SENTINEL_HOSTS
REDIS_STORAGE_SENTINEL_ROLE
を Sentinels ホストおよびポートのコンマ区切りリストに設定します (例::sentinelpwd@123.45.67.009:2711,:sentinelpwd@other-sentinel:2722
)。
-
キューのバックエンド redis:
backend-redis
シークレットを更新し、以下の値を指定します。-
REDIS_QUEUES_URL
-
REDIS_QUEUES_SENTINEL_ROLE
REDIS_QUEUES_SENTINEL_HOSTS
REDIS_QUEUES_SENTINEL_ROLE
を Sentinels ホストおよびポートのコンマ区切りリストに設定します (例::sentinelpwd@123.45.67.009:2711,:sentinelpwd@other-sentinel:2722
)。
-
- これらの Redis データベースと共に Redis Sentinel を使用します。
データ用のシステム redis:
system-redis
シークレットを更新し、以下の値を指定します。注記system-redis
シークレットを編集します:URL
-
SENTINEL_ROLE
-
NAMESPACE
-
URL
SENTINEL_HOSTS
SENTINEL_HOSTS
を Sentinels ホストおよびポートのコンマ区切りリストに設定します (例::sentinelpwd@123.45.67.009:2711,:sentinelpwd@other-sentinel:2722
)。
-
注記
system-app および system-sidekiq コンポーネントは、統計を取得するために
back-end
Redis に直接接続します。-
3scale 2.7 の時点で、これらのシステムコンポーネントは Sentinel を使用する際にも
back-end
Redis (ストレージ) に接続することができます。
-
3scale 2.7 の時点で、これらのシステムコンポーネントは Sentinel を使用する際にも
system-app および system-sidekiq コンポーネントは、
backend-redis
ストレージ しか使用しません (backend-redis
キューは使用しません)。-
システムコンポーネントに加えた変更は、
backend-redis
ストレージと Sentinel の組み合わせをサポートします。
-
システムコンポーネントに加えた変更は、