您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
多台linux服务器的集中统一批量布署管理,用什么工具最好?
工具,批量,主机多台linux服务器的集中统一批量布署管理,用什么工具最好?
发布时间:2020-12-06加入收藏来源:互联网点击:
多台linux服务器的集中统一批量布署管理,用什么工具最好?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
现在最流行什么?当然是docker容器啊。那么怎么管理和编排呢?当然是k8s啊。
如果服务器超过三台的话,建议把所有服务器高可用部署成一套k8s集群,然后每个节点外挂一块共享盘(nfs或者glusterfs),用来挂载给容器存档数据,这样由k8s统一管理,当容器当机,k8s会自动重新部署容器,并且由于共享盘的存在,无论我们的服务容器运行到哪个节点,都可以正常读取数据。真正实现无干预 无感知的服务高可用。
简单介绍下k8s的使用。
k8s统一由yaml或者json来描述任务,个人更喜欢yaml。直接通过kubectl命令行工具来管理k8s作业。
想要对外暴露容器内部服务,我用的比较多的是ingress+service的方式,k8s也提供loadblance等。可自行研究。
对于docker镜像,我们统一由harbor进行管理,保证了我们制作的最新的镜像,在任何节点都可以拉取。
回答于 2019-09-11 08:43:50
你好,我是运维虫子!
关于你提到的Linux服务器的统一管理,既然已经强调Linux服务器,服务器是已经有操作系统安装了,如果没有可以通过pxe的方式安装,网上有很多教程,这里就不多说了。
本篇介绍一下如何使用ansible工具快速管理几十、几百、几千台服务器。
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远
程主机通讯的。ansible目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。这是每位运维工程师必须掌握的技能之一。
云计算涂鸦的合成图像
这里以三台centos7.6为例:
在其中一台服务器上安装ansible:yum install ansible -y
2.配置其他服务器的免密登录:
ssh-keygen
ssh-copy-id +其他服务器IP地址
3.配置ansible主机组host文件。
vi /etc/ansible/hosts
注:创建主机组的时候,可以选择填ip地址,也可以填其他的比如主机名(但是必须在/etc/hosts文件指定主机名与IP对应关系),下面图中给出了三种创建主机组的方法。
/etc/hosts文件
4.ansible统一管理主机组
检查主机存活状态ansible -m ping +主机组
ansible yunweichongzi -m command -a "free -h"
ansible yunweichongzi -m command -a "df -H"
ansible其他模块yum模块:
ansible yunweichongzi -m yum -a "name=httpd state=installed"
启动服务:
ansible yunweichongzi -m service -a "name=httpd state=started enabled=yes"
同理关闭是修改state=stopped
ansible 功能还有很多,例如实现创建/删除文件,同步文件到管理机,备份文件、执行shell命令等等,如果对互联网技术感兴趣可以看我的主页,每天都会写一篇关于互联网技术的文章。
回答于 2019-09-11 08:43:50
ANSIble saltstack
回答于 2019-09-11 08:43:50
这个问题其实分为几个层次来解答:
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等集群。
应用的自动化管理,对于应用管理来说,其实绕不开这几个话题,发布部署,高可用,负载均衡,弹性伸缩,监控告警,日志收集。那么可以拆开来说:
1. 应用部署阶段可以采用jenkins k8s helm的方式,来构建自动化的发布流程。这个方案有兴趣的可以关注我私聊我,我可以指导下。
2. 高可用和负载均衡的方案其实可以通过k8s自身带有的功能去实现。这里面其实也涉及到了应用的health check的问题。
3. 弹性伸缩的问题其实分为两个问题,基础设施的弹性伸缩已经应用的弹性伸缩。基础设施的弹性伸缩这个只能依靠自己写程序去干,比如pxe等。应用弹性伸缩,可用k8s的hpa方式去做,对于弹性伸缩策略,可以cpu和mem。也可以基于其他方案策略,不做细说。
上一篇:川崎z650换机油中途把车打着怠速空转一下再熄火把发动机里残存的机油放干净,对吗?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |