美文网首页
docker运维部署之redis哨兵模式部署

docker运维部署之redis哨兵模式部署

作者: 绝迹88 | 来源:发表于2019-11-20 16:16 被阅读0次

    1.下载镜像

    docker pull docker.io/redis
    

    2.主机上建立挂载目录和redis配置文件

    mkdir -p /data/redis_data 
    cd /data/redis_data 
    touch redis.conf vi redis.conf
    
    • 主机一(192.168.0.34)上的redis.conf配置信息如下:
    logfile "redis.log"
    port 6379
    dir /data
    appendonly yes
    appendfilename appendonly.aof
    requirepass 123456
    
    • 从机二、三(192.168.0.33、192.168.0.35)上也同样建立挂载目录和redis配置文件,其内容稍有不同:
    logfile "redis.log"
    port 6379
    dir /data
    appendonly yes
    appendfilename appendonly.aof
    slaveof 192.168.0.34 6389
    masterauth 123456
    requirepass 123456
    
    • 配置说明:

    dir:工作目录
    logfile:日志文件在工作目录下
    slaveof:指明为主机一的从机
    requirepass:redis客户端连接的认证密码,若不需要可不配置
    masterauth:主从redis同步的认证密码,与连接密码同,若不需要可不用配置
    appendonly:是否需要持久化,yes为需要,默认时everysec
    no:表示等操作系统进行数据缓存同步到磁盘(快)
    always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
    everysec:表示每秒同步一次(折衷,默认值)
    appendfsync everysec

    3.启动容器

    docker run -p 6379:6379 \
    -v /data/redis_data/:/data \
    --name redis-6379 -d \
    docker.io/redis redis-server redis.conf
    
    • 命令说明:

    -p 6379:6379 : 将容器的6379端口映射到主机的6379端口
    -v /data/redis_data:/data : 将主机中目录/data/redis_data挂载到容器的/data
    --name redis-6379: 给出容器名称
    -d: 后台运行
    docker.io/redis: 镜像名称
    redis-server redis.conf: redis的启动命令,指定配置文件

    4.观察容器内部redis的情况:

    docker exec -it redis-6379 /bin/bash
    该命令可进入容器内部,其默认的工作目录即为/data,再执行redis-cli命令,观察redis信息
    执行redis-cli 命令
    127.0.0.1:6379> info
    NOAUTH Authentication required.
    127.0.0.1:6379> auth SVKFGKPaFT
    OK
    127.0.0.1:6379> info
    # Server
    ...
    # Replication
    role:slave
    master_host:192.168.0.33
    master_port:6379
    ...
    

    5.哨兵容器部署

    5.1、主机上建立哨兵目录和其配置文件

    cd /data/redis_data
    touch sentinel.conf
    vi sentinel.conf
    
    • 三台主机上sentinel.conf的内容相同,如下
    logfile "sentinel.log"
    sentinel monitor mymaster 192.168.0.34 6379 1
    sentinel auth-pass mymaster 123456
    
    • 配置说明:

    logfile "sentinel.log":输出日志目录
    sentinel monitor mymaster 192.168.0.1 6379 1:哨兵监控的主服务器名称为mymaster,ip为192.168.0.1,端口为6379,将这个主服务器标记为失效至少需要1个哨兵进程的同意
    sentinel auth-pass mymaster 1234 : 哨兵的认证密码

    5.2、启动容器

    docker run -p 26379:26379 \
    -v /data/redis_data/:/data \
    --name sentinel-redis-26379 \
    -d docker.io/redis redis-sentinel sentinel.conf
    
    • 命令说明:

    -p 26379:26379 : 将容器的26379端口映射到主机的26379端口
    -v /data/redis_data:/data : 将主机中目录/data/redis_data挂载到容器的/data
    --name sentinel-redis-26379: 给出容器名称
    -d: 后台运行
    docker.io/redis: 镜像名称
    redis-sentinel sentinel.conf: sentinel的启动命令,指定配置文件

    5.3、观察容器内哨兵情况

    docker exec -it sentinel-redis-26379 /bin/bash
    连接一个sentinel节点 redis-cli -h 127.0.0.1 -p 26379
    127.0.0.1:26379> info
    # Server
    ...
    # Sentinel
    sentinel_masters:1
    sentinel_tilt:0
    sentinel_running_scripts:0
    sentinel_scripts_queue_length:0
    sentinel_simulate_failure_flags:0
    master0:name=mymaster,status=ok,address=192.168.0.1:6379,slaves=2,sentinels=4
    127.0.0.1:26379> 
    

    相关文章

      网友评论

          本文标题:docker运维部署之redis哨兵模式部署

          本文链接:https://www.haomeiwen.com/subject/puwoictx.html