主机Redis服务迁移到现有Docker Overlay网络

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 《麻雀虽小,五脏俱全》之主机现有Redis服务迁移到Docker Swarm Overlay网络,并搭建高可用容器集群。

hello, 好久不见,之前文章记录了一个实战的2C分布式项目的改造过程,结果如下:


67ae46ef0016ee663370cd9e99d3ad10.png


其中Redis并未完成容器化改造(目前是主机单点),本文记录将Redis升级到容器化Redis-Sentinel集群


升级思路:


  1. Docker-compose搭建Redis高可用哨兵集群》,这里将Redis-Sentinel容器接入现有Docker Swarm overlay网络,规避Redis ClientApp访问不同网络的Redis-Sentinel引发的混乱(因NAT转换和Port映射)。


  1. 利用主机上现有Redis dump.rdb持久化文件快速启动Redis哨兵集群
    (1 master:2slave:3 sentinel)


  1. 修改receiverapp的Redis连接字符串,验证


b5f13db21082dce4b6896b8c2acf2963.png


注意事项


  • 现有的应用程序处于Docker Swarm Overlay网络,默认是不允许附加其他容器,这里我们需要将该Overlay网络配置成可附加,方便Redis-Sentinel接入该网络,所有容器同网络;为方便部署可将哨兵容器分配固定IP。


......
// 下面生成的overlay网络名称是:eqidstack_webnet
networks:
  webnet:
    driver: overlay
    attachable: true   // 将现有的overlay网络配置为:可附加容器
.....


  • 官方Redis镜像持久化数据存储在:/data, 本处我们需要将现有的主机Redis dump.rdb文件外挂进Master容器。


# 下面是master/slave docker-compose.yml文件
version: '3.7'
services:
  master:
    image: redis
    container_name: redis-master
    command: redis-server  --requirepass zxcde@1  --masterauth zxcde@1
    volumes:
      - /home/redis-sentinel/redis/data:/data
    ports:
      - "6380:6379"
    networks:
      - webnet
  slave1:
    image: redis
    container_name: redis-slave-1
    ports:
      - "6381:6379"
    command:  redis-server --slaveof redis-master 6379 --masterauth zxcde@1  --requirepass zxcde@1
    networks:
      - webnet
  slave2:
    image: redis
    container_name: redis-slave-2
    ports:
      - "6382:6379"
    command: redis-server --slaveof redis-master 6379 --masterauth zxcde@1 --requirepass zxcde@1
    networks:
      - webnet
networks:
  webnet:
    external: true
    name: eqidstack_webnet      // 使用现有的Dokcer Overlay网络


  • 经过验证,StackExchange.Redis最新版2.1.58 可以更简洁的方式支持Redis-sentinel,:


  • 只需更改原单点连接字符串,其中10.0.7.41:26379,10.0.7.42:26379,10.0.7.43:26379是sentinel容器端点,serviceName为Sentinel配置的Maser/slave名称。


"redis": "10.0.7.41:26379,10.0.7.42:26379,10.0.7.43:26379,serviceName=mymaster1,password=zxcde@1,abortConnect=false,connectTimeout=10000,writeBuffer=40960"


fc0de1fec9974fd8d3b2c4645d7e7525.png

后记


本文记录较凌乱,需要了解本次实操的背景和过程。


总结起来:将主机上现有单点Redis服务容器化,并搭建哨兵高可用集群, 且将Redis集群与应用程序放在同一Overlay网络,便于同网络段容器通信。


对于ASP.NET Core  && Docker && Redis相关问题,  欢迎各位提出并一起探讨。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
11天前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
111 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
10天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
62 24
|
23天前
|
安全 Docker 容器
docker的默认网络模式有哪些
Docker 默认网络模式包括:1) bridge:默认模式,各容器分配独立IP,可通过名称或IP通信;2) host:容器与宿主机共享网络命名空间,性能最优但有安全风险;3) none:容器隔离无网络配置,适用于仅需本地通信的场景。
35 6
|
26天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
67 7
|
25天前
|
算法 安全 网络安全
网络安全服务
机密主要利用密码学技术加密文件实现,完整主要利用验证码/Hash技术,可用**主要灾备来保障。 网络环境下的身份鉴别,当然还是依托于密码学,一种可以使用口令技术,另一种则是依托物理形式的鉴别,如身份卡等。其实更为安全的是实施多因子的身份认证,不只使用一种方式。数字签名可以用来保证信息的完整性,比如RSA就可以用于数字签名: 若A向B发送信息m则先用自己的保密密钥(私钥)对m加密,然后用B的公钥第二次加密,发送个B后,B先用自己的私钥解密一次,再用A的公钥解密即可。 Kerberos使用对称密码算法来实现通过可信第三方密钥分发中心的认证服务,已经成为工业界的事实标准。
36 3
|
1月前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
44 5
|
1月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
148 5
|
1月前
|
云安全 人工智能 安全
阿里云稳居公共云网络安全即服务市占率第一
IDC发布《中国公有云网络安全即服务市场份额,2023:规模稳步增长,技术创新引领市场格局》报告,阿里云以27.0%的市场份额蝉联榜首。
|
1月前
|
运维 安全 5G

热门文章

最新文章