7.2. 3scale의 백엔드 구성 요소 구성
3scale 관리자로 backend-cron
, backend-listener
, backend-worker
구성 요소 환경 변수에 대한 back-end
의 Redis HA(failover)를 구성합니다. 이러한 구성은 3scale의 Redis HA에 필요합니다.
sentinels와 함께 Redis를 사용하려면 3scale을 배포하기 전에 원하는 Redis를 구성하려면 모든 필드가 있는 system-redis
시크릿을 생성해야 합니다. 필드는 3scale 현재 백엔드에서 매개변수로 제공되지 않습니다.
7.2.1. backend-redis
및 system-redis
시크릿 생성
다음 단계에 따라 backend-redis
및 system-redis
시크릿을 생성합니다.
7.2.2. HA용 3scale 신규 설치 배포
단일 데이터베이스 Redis 인스턴스를 사용하여 배포할 때 키 충돌을 방지하려면 sidekiq
및 message_bus
Redis 키에 대해 다른 네임스페이스를 설정합니다. 이는 Redis Enterprise 및 Redis 클러스터에 모두 적용됩니다.
sidekiq
및 message_bus
가 다른 Redis 데이터베이스에 읽고 쓰는 기타 배포의 경우 네임스페이스는 필요하지 않습니다.
다음 매개 변수는 Redis 키 네임스페이스를 설정하는 데 사용됩니다.
-
NAMESPACE
: Redis 데이터베이스에system-app
및system-sidekiq
에 저장된 작업 대기열과 관련된 항목의 경우 -
MESSAGE_BUS_NAMESPACE
: Redis 데이터베이스의system-app
에 의해 저장된 프로세스 간message_bus
통신과 관련된 항목의 경우
절차
아래 필드를 사용하여
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
MESSAGE_BUS_NAMESPACE MESSAGE_BUS_SENTINEL_HOSTS MESSAGE_BUS_SENTINEL_ROLE MESSAGE_BUS_URL NAMESPACE SENTINEL_HOSTS SENTINEL_ROLE URL
sentinels를 사용하여 Redis에 대해 구성할 때
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
입니다.
최신 버전의 템플릿을 사용하여 템플릿을 사용하여 OpenShift에 3scale 배포에 표시된 대로 3scale을 배포합니다.
-
이미 존재하는
backend-redis
및system-redis
로 인한 오류를 무시합니다.
-
이미 존재하는
7.2.3. 3scale이 아닌 HA 배포를 HA로 마이그레이션
-
HA 용 3scale의 새로운 설치 배포에 표시된 대로 모든 필드를 사용하여
backend-redis
및system-redis
시크릿을 편집합니다. 백엔드 pod에 대해 다음
backend-redis
환경 변수가 정의되어 있는지 확인합니다.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 name: MESSAGE_BUS_REDIS_SENTINEL_HOSTS valueFrom: secretKeyRef: key: MESSAGE_BUS_SENTINEL_HOSTS name: system-redis name: MESSAGE_BUS_REDIS_SENTINEL_ROLE valueFrom: secretKeyRef: key: MESSAGE_BUS_SENTINEL_ROLE name: system-redis
- 템플릿을 사용하여 3scale을 계속 업그레이드 하려면 지침을 따르십시오.
7.2.3.1. Redis Enterprise 사용
OpenShift에 배포된 Redis Enterprise를 사용하여 다음과 같은 세 가지
redis-enterprise
인스턴스를 사용하십시오.system-redis
시크릿을 편집합니다.-
고유한 값을
MESSAGE_BUS_NAMESPACE
및NAMESPACE
로 설정합니다. -
URL
및MESSAGE_BUS_URL
을 동일한 데이터베이스로 설정합니다.
-
고유한 값을
-
backend-redis
의 백엔드 데이터베이스를REDIS_QUES_URL
로 설정합니다. -
backend-redis
의 세 번째 데이터베이스를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
를 sentinels 호스트 및 포트의 쉼표로 구분된 목록으로 설정합니다(예::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
-
세 번째 데이터베이스의 변수를 다음과 같이 설정합니다.
-
REDIS_STORAGE_URL
-
REDIS_STORAGE_SENTINEL_ROLE
-
REDIS_STORAGE_SENTINEL_HOSTS
-
참고
system-app 및 system-sidekiq 구성 요소는 통계를 검색하기 위해
back-end
Redis에 직접 연결합니다.-
3scale 2.7부터 이러한 시스템 구성 요소는 sentinels를 사용할 때
back-end
Redis(스토리지)에도 연결할 수 있습니다.
-
3scale 2.7부터 이러한 시스템 구성 요소는 sentinels를 사용할 때
system-app 및 system-sidekiq 구성 요소는
backend-redis
대기열이 아닌backend-redis
스토리지 만 사용합니다.-
시스템 구성 요소를 변경하면 sentinels가 있는
backend-redis
스토리지를 지원합니다.
-
시스템 구성 요소를 변경하면 sentinels가 있는