论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
物联网
›
物联网
›
利用bitnamiredis-sentinel部署Redis 哨兵模式
利用bitnamiredis-sentinel部署Redis 哨兵模式
风雨同行
金牌会员
|
2025-2-17 10:23:00
|
显示全部楼层
|
阅读模式
楼主
主题
981
|
帖子
981
|
积分
2943
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
利用bitnami/redis-sentinel部署Redis 哨兵模式
为什么利用 Bitnami 镜像?
Bitnami 密切跟踪上游源代码更改,并利用我们的主动化系统及时发布此镜像的新版本。
借助 Bitnami 镜像,可以尽快提供最新的错误修复和功能。
Bitnami 容器、虚拟机和云镜像利用雷同的组件和配置方法 - 可以根据你的项目需求轻松切换格式。
我们全部的镜像都基于minideb,这是一个基于 Debian 的极简容器镜像,它为你提供了一个小型底子容器镜像和领先 Linux 发行版的熟悉度。
Docker Hub 中可用的全部 Bitnami 镜像都利用Docker Content Trust (DCT)进行署名。你可以利用它DOCKER_CONTENT_TRUST=1来验证镜像的完整性。
Bitnami 容器镜像会定期发布,并提供最新的分发包。
获取此镜像
获取 Bitnami Redis Sentinel Docker 镜像的保举方法是从Docker Hub Registry中提取预构建的镜像。
docker pull bitnami/redis-sentinel:latest
复制代码
要利用特定版本,你可以拉取版本化标签。你可以在 Docker Hub Registry 中查看可用版本的列表。
docker pull bitnami/redis-sentinel:[TAG]
复制代码
如果你乐意,你也可以本身构建镜像。
docker build -t bitnami/redis-sentinel:latest 'https://github.com/bitnami/bitnami-docker-redis-sentinel.git#master:7.0/debian-11'
复制代码
毗连到其他容器
利用Docker 容器网络,你的应用程序容器可以轻松访问在容器内运行的 Redis 服务器。
毗连到同一网络的容器可以利用容器名称作为主机名相互通讯。
利用命令行
在此示例中,我们
将创建一个 Redis Sentinel 实例,该实例将监视在同一 docker 网络上运行的 Redis 实例
。
第 1 步:创建网络
docker network create redis-sharednet --driver bridge
# swarm 跨节点
docker network create -d overlay --attachable redis-sharednet
复制代码
第 2 步:启动 Redis 实例
利用命令的--network app-tier参数,将 Redis 容器附加到app-tier网络。
# 从节点docker run -d --name redis-server
-e ALLOW_EMPTY_PASSWORD=yes
--network app-tier
bitnami/redis:4.0.14
# swarm 跨节点
# 主节点
docker run -d --name redis-server -p 6388:6379
-e REDIS_REPLICATION_MODE=master
-e REDIS_PASSWORD=root123
--network redis-sharednet
bitnami/redis:4.0.14
复制代码
第 3 步:启动你的 Redis Sentinel 实例
末了,我们创建一个新的容器实例来启动 Redis 客户端并毗连到上一步中创建的服务器:
docker run -it --rm
-e REDIS_MASTER_HOST=redis-server
--network app-tier
bitnami/redis-sentinel:4.0.14
# swarm 跨节点
# 从节点
docker run -d --name redis-slave -p 6399:6379
-e REDIS_REPLICATION_MODE=slave
-e REDIS_MASTER_HOST=redis-server
-e REDIS_MASTER_PASSWORD=root123
-e REDIS_PASSWORD=root123
--network redis-sharednet
bitnami/redis:4.0.14
# 哨兵节点
docker run -d --name redis-sentinel
-e REDIS_MASTER_HOST=redis-server
-e REDIS_MASTER_PASSWORD=root123
--network redis-sharednet
bitnami/redis-sentinel:4.0.14
docker run -d --name redis-sentinel-02
-e REDIS_MASTER_HOST=redis-server
-e REDIS_MASTER_PASSWORD=root123
--network redis-sharednet
bitnami/redis-sentinel:4.0.14
docker run -d --name redis-sentinel-03
-e REDIS_MASTER_HOST=redis-server
-e REDIS_MASTER_PASSWORD=root123
--network redis-sharednet
bitnami/redis-sentinel:4.0.14
复制代码
利用 Docker 撰写
如果未指定,Docker Compose 会主动设置一个新网络并将全部已部署的服务附加到该网络。但是,我们将明确定义一个bridge名为 的新网络app-tier。在此示例中,我们假设你希望从你本身的自定义应用程序镜像毗连到 Redis 服务器,该镜像在以下代码段中由服务名称标识myapp。
version: '2'
networks:
app-tier:
driver: bridge
services:
redis:
image: 'bitnami/redis:latest'
environment:
- ALLOW_EMPTY_PASSWORD=yes
networks:
- app-tier
redis-sentinel:
image: 'bitnami/redis-sentinel:latest'
environment:
- REDIS_MASTER_HOST=redis
ports:
- '26379:26379'
networks:
- app-tier
复制代码
利用以下命令启动容器:
docker-compose up -d
复制代码
利用主从设置
在 Master-Slave 设置中利用 Sentinel 时,如果要设置 Master 和 Slave 节点的密码,请考虑为它们设置
雷同
REDIS_PASSWORD的密码REDIS_MASTER_PASSWORD(#23)。
version: '2'
networks:
app-tier:
driver: bridge
services:
redis:
image: 'bitnami/redis:latest'
environment:
- REDIS_REPLICATION_MODE=master
- REDIS_PASSWORD=str0ng_passw0rd
networks:
- app-tier
ports:
- '6379'
redis-slave:
image: 'bitnami/redis:latest'
environment:
- REDIS_REPLICATION_MODE=slave
- REDIS_MASTER_HOST=redis
- REDIS_MASTER_PASSWORD=str0ng_passw0rd
- REDIS_PASSWORD=str0ng_passw0rd
ports:
- '6379'
depends_on:
- redis
networks:
- app-tier
redis-sentinel:
image: 'bitnami/redis-sentinel:latest'
environment:
- REDIS_MASTER_PASSWORD=str0ng_passw0rd
depends_on:
- redis
- redis-slave
ports:
- '26379-26381:26379'
networks:
- app-tier
复制代码
利用以下命令启动容器:
docker-compose up --scale redis-sentinel=3 -d
复制代码
配置
情况变量
Redis Sentinel 实例可以通过在第一次运行时指定情况变量来定制。提供以下情况值以自定义 Redis Sentinel:
REDIS_MASTER_HOST:要监控的 Redis 主控的主机。默认值:
redis
。
REDIS_MASTER_PORT_NUMBER:要监控的 Redis master 的端口。默认值:
6379
。
REDIS_MASTER_SET:要监控的 Redis 实例集的名称。默认值:
mymaster
。
REDIS_MASTER_PASSWORD:与主服务器进行身份验证的密码。没有默认值。作为替代方案,你可以利用密码挂载文件并设置REDIS_MASTER_PASSWORD_FILE变量。
REDIS_MASTER_USER: 为 master 启用 ACL 时进行身份验证的用户名。没有默认值。这仅适用于 Redis 6 或更高版本。如果未指定,Redis Sentinel 将实验仅利用密码进行身份验证(利用sentinel auth-pass <master-name> <password>)。
REDIS_SENTINEL_PORT_NUMBER:Redis 哨兵端口。默认值:
26379
。
REDIS_SENTINEL_QUORUM:需要就 master 不可访问这一究竟告竣同等的 Sentinel 数量。默认值:
2
。
REDIS_SENTINEL_PASSWORD:利用此哨兵进行身份验证和向其他哨兵进行身份验证的密码。没有默认值。全部哨兵都需要雷同。作为替代方案,你可以利用密码挂载文件并设置REDIS_SENTINEL_PASSWORD_FILE变量。
REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS: 公布 master 关闭之前的毫秒数。默认值:
60000
。
REDIS_SENTINEL_FAILOVER_TIMEOUT:以毫秒为单位指定故障转移超时。默认值:
180000
。
REDIS_SENTINEL_RESOLVE_HOSTNAMES:启用哨兵主机名支持。这仅适用于 Redis 6.2 或更高版本。默认值:
否
。
REDIS_SENTINEL_TLS_ENABLED:是否为流量启用 TLS。默认值:
否
。
REDIS_SENTINEL_TLS_PORT_NUMBER:用于 TLS 安全流量的端口。默认值:
26379
。
REDIS_SENTINEL_TLS_CERT_FILE:包罗 TLS 流量的证书文件的文件。没有默认值。
REDIS_SENTINEL_TLS_KEY_FILE:包罗证书密钥的文件。没有默认值。
REDIS_SENTINEL_TLS_CA_FILE: 包罗证书 CA 的文件。没有默认值。
REDIS_SENTINEL_TLS_DH_PARAMS_FILE: 包罗 DH 参数的文件(为了支持基于 DH 的密码)。没有默认值。
REDIS_SENTINEL_TLS_AUTH_CLIENTS:是否要求客户端进行身份验证。默认值:
是
。
REDIS_SENTINEL_ANNOUNCE_IP:在 HELLO 消息中利用指定的 IP 地点来八卦它的存在。默认值:
主动检测到的本地地点
。
REDIS_SENTINEL_ANNOUNCE_PORT: 利用 HELLO 消息中的指定端口来八卦它的存在。默认值:
在 中指定的端口REDIS_SENTINEL_PORT_NUMBER
。
保护 Redis Sentinel 流量
从版本 6 开始,Redis 添加了对 SSL/TLS 毗连的支持。如果你希望启用此可选功能,你可以利用上述REDIS_SENTINEL_TLS_*情况变量来配置应用程序。
启用 TLS 时,默认情况下会禁用通例标准流量。然而,这个新功能并不是相互排斥的,这意味着可以同时监听 TLS 和非 TLS 毗连。要启用非 TLS 流量,请设置REDIS_SENTINEL_PORT_NUMBER为不同于0.
利用docker run
docker run --name redis-sentinel
-v /path/to/certs:/opt/bitnami/redis/certs
-v /path/to/redis-sentinel/persistence:/bitnami
-e REDIS_MASTER_HOST=redis
-e REDIS_SENTINEL_TLS_ENABLED=yes
-e REDIS_SENTINEL_TLS_CERT_FILE=/opt/bitnami/redis/certs/redis.crt
-e REDIS_SENTINEL_TLS_KEY_FILE=/opt/bitnami/redis/certs/redis.key
-e REDIS_SENTINEL_TLS_CA_FILE=/opt/bitnami/redis/certs/redisCA.crt
bitnami/redis-cluster:latest
bitnami/redis-sentinel:latest
复制代码
修改docker-compose.yml此存储库中存在的文件:
redis-sentinel:
...
environment:
...
- REDIS_SENTINEL_TLS_ENABLED=yes
- REDIS_SENTINEL_TLS_CERT_FILE=/opt/bitnami/redis/certs/redis.crt
- REDIS_SENTINEL_TLS_KEY_FILE=/opt/bitnami/redis/certs/redis.key
- REDIS_SENTINEL_TLS_CA_FILE=/opt/bitnami/redis/certs/redisCA.crt
...
volumes:
- /path/to/certs:/opt/bitnami/redis/certs
...
...
复制代码
或者,你也可以在自定义配置文件中提供此配置。
配置文件
该镜像在/bitnami/redis-sentinel/conf/. 你可以/bitnami在/path/to/redis-persistence/redis-sentinel/conf/. conf/如果目次为空,则默认配置将填充到目次中。
第 1 步:运行 Redis Sentinel 镜像
运行 Redis Sentinel 镜像,从你的主机挂载一个目次。
docker run --name redis-sentinel
-e REDIS_MASTER_HOST=redis
-v /path/to/redis-sentinel/persistence:/bitnami
bitnami/redis-sentinel:latest
复制代码
你还可以修改[这里是代码055]此存储库中存在的文件:
services:
redis-sentinel:
...
volumes:
- /path/to/redis-persistence:/bitnami
...
复制代码
第 2 步:编辑配置
利用你喜欢的编辑器编辑主机上的配置。
vi /path/to/redis-persistence/redis-sentinel/conf/redis.conf
复制代码
第 3 步:重新启动 Redis
更改配置后,重新启动 Redis 容器以使更改见效。
docker restart redis
复制代码
或利用 Docker 撰写:
docker-compose restart redis
复制代码
有关配置选项的完整列表,请参阅Redis? 配置手册。
日志记录
Bitnami Redis Sentinel Docker Image 将容器日志发送到stdout. 查看日志:
docker logs redis
复制代码
或利用 Docker 撰写:
docker-compose logs redis
复制代码
如果你希望以不同的方式利用容器日志,你可以利用该选项配置容器日志记录驱动程序。--log-driver在默认配置中,docker 利用json-file驱动程序。
维护
升级此镜像
Bitnami 在上游制作后不久就提供最新版本的 Redis Sentinel,包罗安全补丁。我们建议你按照以下步骤升级你的容器。
第 1 步:获取更新后的镜像
docker pull bitnami/redis-sentinel:latest
复制代码
或者,如果你利用的是 Docker Compose,请将 image 属性的值更新为 bitnami/redis-sentinel:latest.
第 2 步:制止并备份当前正在运行的容器
利用命令制止当前运行的容器
docker stop redis
复制代码
或利用 Docker 撰写:
docker-compose stop redis
复制代码
接下来,利用以下命令拍摄恒久卷的快照/path/to/redis-persistence:
rsync -a /path/to/redis-persistence /path/to/redis-persistence.bkp.$(date +%Y%m%d-%H.%M.%S)
复制代码
第三步:移除当前运行的容器
docker rm -v redis
复制代码
或利用 Docker 撰写:
docker-compose rm -v redis
复制代码
第四步:运行新镜像
重新镜像重新创建你的容器。
docker run --name redis bitnami/redis-sentinel:latest
复制代码
或利用 Docker 撰写:
docker-compose up redis
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
风雨同行
金牌会员
这个人很懒什么都没写!
楼主热帖
深入Python网络编程:从基础到实践 ...
MySQL锁(乐观锁、悲观锁、多粒度锁) ...
中职网络安全技能大赛SSH弱口令渗透测 ...
阿里云体验有奖:如何将 PolarDB-X 与 ...
HTML+CSS+JS——动漫风二次元论坛(2页) ...
四、MySQL之数据查询语言(二) ...
超融合和传统 “VMware + FC SAN& ...
转载自ChatGPT:Python关键字 asynico ...
损失函数-pytorch
ClickHouse(02)ClickHouse架构设计介绍 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
linux
分布式数据库
IOS
前端开发
程序人生
Oracle
Mysql
DevOps与敏捷开发
云原生
快速回复
返回顶部
返回列表