Redis在实际应用中,是单独部署在一个服务器中,还是和项目跑在一个服务器中,还是跑在数据库服务器?
理论上是独立部署最好。但实际情况吧看公司机器资源。不从实际情况考虑的架构都是耍流氓。redis主要耗内存。但生产环境中cpu,网络,磁盘都是要考虑的问题,而且我们的资源是有限的。

可以肯定的是最好不要和数据库在同一个节点部署。数据库需要单独部署。为什么这样说呢? 一个原因是因为数据库太重要了。我们不能因为redis的问题导致数据库被牵连。另一个原因。redis作为缓存,本身就是为了减少直接连库的压力。结果部署在一个节点上。数据库实例的压力是小了。但这个节点整体访问量,IO,cpu,内存并没有减小多少。甚至是增加了。因为一次请求要吗访问数据库,要吗访问redis,但现在都在一个节点上, 所以总量并没有减小。而redis自身还会淘汰数据,这其中又是一波耗节点资源的操作。
从另一个理想的角度考虑,我希望我的数据库实例挂了,能从redis中获取数据。我的redis挂了,能从数据线中获取数据。这样尽量保证业务正常。要实现这个目标,数据库和redis必须在不同的节点上。如果在同一个节点。而这个节点挂了。我们就没有取数据的地方了。
生产环境,中间件之间可以混合部署。比如redis,mq可以在同节点混合部署。业务项目之间可以混合部署。但业务不要和中间件部署到同节点。数据库独立节点部署。

redis最好也不要和其他的耗内存大户混合部署,如elasticsearch 这种的。
如果没有中间件节点。那就选个业务访问量少的节点混合部署吧,总之不要选数据库节点。除非这个数据库节点是冷备节点
看规模吧!小规模直接用docker跟服务一起跑。我们是直接跑k8s 上,通过redis-operator 来管理redis集群,使用sentinel模式!redis集群的运维工作基本上由k8s 管理,扩缩容都是秒级实现。容器技术出来以后,基本很少用宿主机跑redis,除了一些老项目以外,新项目都直接容器化了。

多台linux服务器的集中统一批量布署管理,用什么工具最好?
现在最流行什么?当然是docker容器啊。那么怎么管理和编排呢?当然是k8s啊。
如果服务器超过三台的话,建议把所有服务器高可用部署成一套k8s集群,然后每个节点外挂一块共享盘(nfs或者glusterfs),用来挂载给容器存档数据,这样由k8s统一管理,当容器当机,k8s会自动重新部署容器,并且由于共享盘的存在,无论我们的服务容器运行到哪个节点,都可以正常读取数据。真正实现无干预 无感知的服务高可用。
简单介绍下k8s的使用。
k8s统一由yaml或者json来描述任务,个人更喜欢yaml。直接通过kubectl命令行工具来管理k8s作业。
想要对外暴露容器内部服务,我用的比较多的是ingress+service的方式,k8s也提供loadblance等。可自行研究。
对于docker镜像,我们统一由harbor进行管理,保证了我们制作的最新的镜像,在任何节点都可以拉取。
这个问题其实分为几个层次来解答:
1. 基础设施资源管理
2. runtime以及中间件管理
3. 应用自动化管理
基础设施资源管理主要分为计算[cpu,mem],存储,网络等。那么怎么管理基础设施资源呢?
1. 将底层硬件资源云化整合成资源池,然后通过容器来做资源的切分给上层的中间件以及应用使用。资源的抽象整合可以使用的工具容器三大调度工具,swarm,k8s,mesos。当然随着调度工具的发展,原生调度工具swarm,mesos都已经落寞了。谷歌主导的k8s新一代数据中心云操作系统已经成为了事实标准。不过个人感觉如果公司较小没有专业的k8s管理者,可以使用swarm简单而且易用。
对于中间件以及runtime的自动化管理, 这其实是个paas的概念。那么小公司如何去实践使用呢?
1. 如果使用swarm作为调度工具的话,可以使用docker compose编排文件去定义中间件的部署yaml文件。比如:redis-ha集群。
2. 如果使用k8s作为平台调度工具,建议使用helm应用包管理器,进行打包和发布应用。helm每次发布会依据charts模板生成一个release,应用可以根据release回退到特定的版本。管理十分方便。我一般都是通过这种方式管理mq,redis等集群。
应用的自动化管理,对于应用管理来说,其实绕不开这几个话题,发布部署,高可用,负载均衡,弹性伸缩,监控告警,日志收集。那么可以拆开来说:
你好,我是运维虫子!
关于你提到的Linux服务器的统一管理,既然已经强调Linux服务器,服务器是已经有操作系统安装了,如果没有可以通过pxe的方式安装,网上有很多教程,这里就不多说了。
本篇介绍一下如何使用ansible工具快速管理几十、几百、几千台服务器。
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远
程主机通讯的。ansible目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。这是每位运维工程师必须掌握的技能之一。
云计算涂鸦的合成图像
这里以三台centos7.6为例:
yum install ansible -y
2.配置其他服务器的免密登录:
到此,以上就是小编对于redis docker 集群的问题就介绍到这了,希望这2点解答对大家有用。