2

so I have this kind of docker-compose

version: '3.8'
x-base: &base
  image: redis:latest

x-base-sen: &base-sen
  image: redis:latest
  command: redis-sentinel /sentinel/sentinel.conf --protected-mode no

services:
  redis1:
    <<: *base
    hostname: redis1
    container_name: redis-master
    command: redis-server  --replica-announce-ip redis1 --slave-announce-ip redis1 --protected-mode no

  redis2:
    <<: *base
    hostname: redis2
    container_name: redis-slave1
    command: redis-server --slaveof redis1 6379 --replica-announce-ip redis2 --slave-announce-ip redis2 --protected-mode no

  redis3:
    <<: *base
    hostname: redis3
    container_name: redis-slave2
    command: redis-server --slaveof redis1 6379 --replica-announce-ip redis3 --slave-announce-ip redis3 --protected-mode no

  sentinel1:
    <<: *base-sen
    hostname: sentinel1
    container_name: redis-sentinel1
    volumes:
      - ./sentinel1:/sentinel
    depends_on: 
      - redis1
      - redis2
      - redis3

  sentinel2:
    <<: *base-sen
    hostname: sentinel2
    container_name: redis-sentinel2
    volumes:
      - ./sentinel2:/sentinel
    depends_on: 
      - redis1
      - redis2
      - redis3

  sentinel3:
    <<: *base-sen
    hostname: sentinel3
    container_name: redis-sentinel3
    volumes:
      - ./sentinel3:/sentinel
    depends_on: 
      - redis1
      - redis2
      - redis3

and this is my sentinel.conf file

port 26379

dir "/tmp"

sentinel monitor redismaster redis1 6379 2
sentinel down-after-milliseconds redismaster 3000

sentinel failover-timeout redismaster 6000
sentinel resolve-hostnames yes
sentinel announce-hostnames yes
sentinel announce-ip "sentinel1"

and there are different config files and sentinel1 changes for each container. so when I shut the master node down manually I expect that sentinels choose one of the slave nodes to be new master node but i get this kind of logs this is one of my sentinels logs:

1:X 11 Jul 2022 19:13:23.693 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo

1:X 11 Jul 2022 19:13:23.693 # Redis version=7.0.2, bits=64, commit=00000000, modified=0, pid=1, just started

1:X 11 Jul 2022 19:13:23.693 # Configuration loaded

1:X 11 Jul 2022 19:13:23.693 * monotonic clock: POSIX clock_gettime

1:X 11 Jul 2022 19:13:23.694 * Running mode=sentinel, port=26379.

1:X 11 Jul 2022 19:13:23.746 * Sentinel new configuration saved on disk

1:X 11 Jul 2022 19:13:23.746 # Sentinel ID is e12e36307bfb32bf091d20548edbb89b7b54feea

1:X 11 Jul 2022 19:13:23.746 # +monitor master redismaster redis1 6379 quorum 2

1:X 11 Jul 2022 19:13:23.747 * +slave slave redis2:6379 redis2 6379 @ redismaster redis1 6379

1:X 11 Jul 2022 19:13:23.801 * Sentinel new configuration saved on disk

1:X 11 Jul 2022 19:13:23.802 * +slave slave redis3:6379 redis3 6379 @ redismaster redis1 6379

1:X 11 Jul 2022 19:13:23.848 * Sentinel new configuration saved on disk

1:X 11 Jul 2022 19:13:24.192 * +sentinel sentinel 25ae390f472f4768b498cac40828e5f437eb393d sentinel3 26379 @ redismaster redis1 6379

1:X 11 Jul 2022 19:13:24.270 * Sentinel new configuration saved on disk

1:X 11 Jul 2022 19:13:24.572 * +sentinel sentinel 924b19cc7ef47d57e794ff1a87151fbf02451729 sentinel2 26379 @ redismaster redis1 6379

1:X 11 Jul 2022 19:13:24.636 * Sentinel new configuration saved on disk

1:X 11 Jul 2022 19:16:03.202 # Failed to resolve hostname 'redis1'

1:X 11 Jul 2022 19:16:03.202 # +tilt #tilt mode entered

1:X 11 Jul 2022 19:16:13.213 # Failed to resolve hostname 'redis1'

1:X 11 Jul 2022 19:16:23.224 # Failed to resolve hostname 'redis1'

1:X 11 Jul 2022 19:16:33.234 # Failed to resolve hostname 'redis1' 

and this is one of slave nodes logs:

1:S 11 Jul 2022 19:13:18.197 * Successful partial resynchronization with master.

1:S 11 Jul 2022 19:13:18.197 * MASTER <-> REPLICA sync: Master accepted a Partial Resynchronization.

1:S 11 Jul 2022 19:15:50.125 # Connection with master lost.

1:S 11 Jul 2022 19:15:50.125 * Caching the disconnected master state.

1:S 11 Jul 2022 19:15:50.125 * Reconnecting to MASTER redis1:6379

1:S 11 Jul 2022 19:15:50.125 * MASTER <-> REPLICA sync started

1:S 11 Jul 2022 19:15:50.125 # Error condition on socket for SYNC: Connection refused

1:S 11 Jul 2022 19:15:50.970 * Connecting to MASTER redis1:6379

1:S 11 Jul 2022 19:16:00.980 # Unable to connect to MASTER: Resource temporarily unavailable

1:S 11 Jul 2022 19:16:01.983 * Connecting to MASTER redis1:6379

1:S 11 Jul 2022 19:16:11.994 # Unable to connect to MASTER: Resource temporarily unavailable

1:S 11 Jul 2022 19:16:12.997 * Connecting to MASTER redis1:6379

1:S 11 Jul 2022 19:16:23.007 # Unable to connect to MASTER: Resource temporarily unavailable

1 Answer 1

1

You can see my repo with sentinels fully working https://github.com/helderjnpinto/Redis-Sentinel-Docker-Compose just do docker-compose up

1
  • 1
    when I run docker-compose pause redis-master, a new master is not elected and redis is unavailable
    – tstr
    Aug 20, 2023 at 9:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .