技术标签: sentinel kubernetes-云原生的掌舵人 琦彦の百宝箱 Docker:一个应用容器引擎 redis docker
DOCKER_CONTENT_TRUST=1
来验证镜像的完整性。获取 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 实例。
docker network create redis-sharednet --driver bridge
# swarm 跨节点
docker network create -d overlay --attachable redis-sharednet
使用命令的--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
最后,我们创建一个新的容器实例来启动 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 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
。从版本 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/
如果目录为空,则默认配置将填充到目录中。
运行 Redis Sentinel 镜像,从你的主机挂载一个目录。
docker run --name redis-sentinel \
-e REDIS_MASTER_HOST=redis \
-v /path/to/redis-sentinel/persistence:/bitnami \
bitnami/redis-sentinel:latest
你还可以修改docker-compose.yml
此存储库中存在的文件:
services:
redis-sentinel:
...
volumes:
- /path/to/redis-persistence:/bitnami
...
使用你喜欢的编辑器编辑主机上的配置。
vi /path/to/redis-persistence/redis-sentinel/conf/redis.conf
更改配置后,重新启动 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,包括安全补丁。我们建议你按照以下步骤升级你的容器。
docker pull bitnami/redis-sentinel:latest
或者,如果你使用的是 Docker Compose,请将 image 属性的值更新为 bitnami/redis-sentinel:latest
.
使用命令停止当前运行的容器
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
文章浏览阅读9.9k次,点赞9次,收藏5次。出现这个问题的时候我一开始也是觉得莫名其妙,因为这并不是程序错误,而很容易发现是编译器的问题,但是因为想到昨晚关机前编译器都还是可以正常编译使用的,但是早上开机重新打开keil version5编译器就出现这个错误提示了,后来发现是我电脑系统时间没有设置当天时间所导致的错误。_error: c9517e: parsing error: info generationdate specifies date which is in
文章浏览阅读920次。大家好,今天给大家介绍基于C#+asp.net+sqlserver的搜索引擎设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。文章目录:项目难度:中等难度适用场景:相关题目的毕业设计配套论文字数:8952个字23页包含内容:整套源码+完整毕业论文资源文件目录简图如下:提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。引言1.1 课题背景Lucene是一个基于Java的全文信息检索工具包,它为应用程序提供索引和搜索功能。Lucene目前是Apache Jakarta_c#搜索引擎怎么做
文章浏览阅读1k次,点赞2次,收藏6次。需求:使用vue-cli脚手架搭建项目,并且使用第三方的UI库(比如vant,mint ui)的时候,因为第三方库用的都是用px单位,无法使用rem适配不同设备的屏幕。解决办法:使用px2rem-loader插件将第三方ui库的px转换成rem单位。(1) npm install px2rem-loader --save-dev ..._vue移动端适配并解决rem影响第三方ui库样式问题
文章浏览阅读2.9k次。前言 因为不喜欢用Windows所以在实验室用的是Ubuntu的系统,可是和Mac OS不一样,Ubuntu的鼠标滚动方式和Windows是一致的,觉得很不习惯。这里附上一个不完美的解决方案。实现方法打开终端输入:sudo gedit .Xmodmap然后将文本里的内容修改为:pointer = 1 2 3 5 4 6 7 8 9 10 11 12保存注销即可。已知问题 在一些系统界面,例如终端_ubuntu20 改变鼠标滚轮方向 没有自然滚动
文章浏览阅读2.4k次。BCELosstorch.nn.BCELoss(weight=None, size_average=None, reduce=None, reduction=‘mean’)评价预测值与真值的 Binary Cross Entropyl(x,y)=L={l1,l2,...lN}T,ln=−ωn[ynlogxn+(1−yn)log(1−xn)]l(x,y) = L = \{ l_1, l_2, ... l_N\}^T, l_n = - \omega_n[y_nlogx_n+(1-y_n)log(1-x__nn.bceloss() mseloss
文章浏览阅读156次。配置phpstorm编辑器实时编辑服务端代码。一:二:三:填写服务器信息四:配置链接地址五:打开options六:配置实时更新效果图:本地服务端ps:本地编写完需要 control+s保存。作者:程序_源链接:https://www.jianshu.com/p/014ad05738da来源:简书著作权..._phpstorm demployment修改代码
文章浏览阅读937次。控制面板 外观和个性化个性化 窗口颜色和外观然后选择高级外观设置...然后再项目中选择窗口然后再点击颜色在选择其他然后修改色调,饱和度和亮度为84 90 205这样就好了_知乎word背景修改护眼色
文章浏览阅读1.2w次。Java Archive Downloads - Java SE 8. ... For production use Oracle recommends downloading the latest JDK and JRE versions and allowing auto-update. Only developers and Enterprise administrators should ..._java升级8u101以上
文章浏览阅读65次。ScrollView嵌套ListView后,进入页面不从顶部开始显示的问题解决 首先,正常情况下,如果在ScrollView里嵌套ListView后,会发现ListView只显示1条数据 那么,为了解决这个问题,你一定重写了ListVi..._scrollview 进入页面不显示第一个view
文章浏览阅读2.4k次。1. 前言防刷机方案帮助厂商控制产品上运行固件的安全性,任何没有厂商授权的固件(bootloader/kernel/android),都无法在产品上运行。 Secure boot实现的技术目的 :建立完整trust chain,保证android设备加载的Kernel 和Android系统不被篡改。 防止rootkit、bootkit等软件对系统的攻击。2. 硬件支持硬件模块Secure Brom ,efuse 和crypto engine,为验证过程提供了IC内部支持。(1)Sec_防止固件被篡改csdn
文章浏览阅读2.6k次,点赞5次,收藏13次。问题描述:进行conda升级时运行如下命令conda update -n base -c defaults conda报错:解决方法:#首先运行conda update --force conda#再运行conda update -n base -c defaults conda参考:[1] RemoveError: ‘setuptools’ is a dependency of conda and cannot be removed from conda’s operating _removeerror: 'setuptools' is a dependency of conda and cannot be removed fro
文章浏览阅读2.5k次。往下阅读有具体内容安卓手机开发者模式前言:前面写了一些安卓手机相关的刷机与解锁教程,有时候用到手机开发者模式选项,有网友留言,问我如何开启开发者模式选项。在此篇文章给大家介绍一下。具体相关操作步骤给你介绍一下。以下就是相关操作步骤。最后总结的地方有介绍,为什么要开启手机开发者模式,具体不同品牌设置开发参数有所不同,开启方法是通用的。第一步骤:点击手机设置按钮如下图1所示图1第二步骤:点击设置按钮后..._安卓手机开发者模式