상황docker 클러스터에서 redis 클러스터를 실행하는 방법은 무엇입니까?
가 최고 떨어져 고정 표시기 클러스터에서 실행되도록 내가 최대의 자동 복구 기능을 달성하기 위해, 설치에 레디 스 클러스터를 시도하고있다.
좀 더 정확히 말하면, 3 개의 복제본을 가진 서비스를 정의하는 도커 작성 파일이 있습니다. 각 서비스 복제에는 실행중인 redis-server가 있습니다. 그런 다음 각 복제본 안에 도커 클러스터의 변경 사항을 수신하고 조건이 충족되면 클러스터를 시작하는 프로그램이 있습니다 (각 redis-servers는 서로를 알고 있습니다).
redis 클러스터 작업을 설정하면 클러스터가 형성되고 모든 redis-server는 통신이 잘되지만 redis-server 간의 통신은 docker 클러스터 내에 있습니다.
문제점
내가 정보를 추가 할 때 때문에하지만, 레디 스-서버와 통신 할 수 있어요 유입 모드는 고정 표시기 클러스터 외부에서 통신을 시도 (예 : 세트 foo bar) 클라이언트가 다른 redis-server로 이동하면 통신이 중지되고 결국 시간 초과됩니다.
코드
이것은 고정 표시기-작성 파일입니다.
version: "3.3"
services:
redis-cluster:
image: redis-srv-instance
volumes:
- /var/run/:/var/run
deploy:
mode: replicated
#endpoint_mode: dnsrr
replicas: 3
resources:
limits:
cpus: '0.5'
memory: 512M
ports:
- target: 6379
published: 30000
protocol: tcp
mode: ingress
문제를 나타내는 명령의 흐름.
클라이언트
~ ./redis-cli -c -p 30000
127.0.0.1:30000>
레디 스 서버
OK
1506533095.032738 [0 10.255.0.2:59700] "COMMAND"
1506533098.335858 [0 10.255.0.2:59700] "info"
클라이언트
127.0.0.1:30000> set ghb fki
OK
레디 S-서버
1506533566.481334 [0 10.255.0.2:59718] "COMMAND"
1506533571.315238 [0 10.255.0.2:59718] "set" "ghb" "fki"
클라이언트
127.0.0.1:30000> set rte fgh
-> Redirected to slot [3830] located at 10.0.0.3:6379
Could not connect to Redis at 10.0.0.3:6379: Operation timed out
Could not connect to Redis at 10.0.0.3:6379: Operation timed out
(150.31s)
not connected>
어떤 아이디어? 나는 또한 하나의 프록시 /로드 밸런서를 만들려고했으나 작동하지 않았다.
감사합니다. 좋은 하루 되세요.