keepalived安装与配置
K8S高可用【多master】集群部署

K8S⾼可⽤【多master】集群部署CI、CD、K8S⾼可⽤集群部署及使⽤⽬录第三章 K8S基本概念及搭建环境准备 (3)1、架构及服务 (3)2、基本概念 (3)3、组件说明、POD (4)4、IP地址规划 (4)5、操作系统内核版本 (5)6、修改hosts【所有节点】 (5)7、修改hostname【各节点依次操作】 (5)8、配置ntp服务并同步【所有节点】 (6)9、关闭防⽕墙和selinux【所有节点】 (6)10、关闭swap【所有节点】【必须】 (6)11、设置系统参数【所有节点】 (6)第四章安装keepalived和haproxy (7)1、yum安装Keepalived【三个master节点】 (8)2、配置Keepalived【三个master节点】 (8)3、启动Keepalived【三个master节点】 (10)4、查看⽹络状态和测试漂移【三个master节点】 (11)5、安装haproxy【三个mster节点】 (11)6、配置haproxy【三个master节点】 (11)7、启动并检测haproxy【三个master】 (14)8、检测haproxy端⼝【三个master】 (14)第五章 docker、容器、镜像、仓库管理 (14)1、卸载docker旧版本【所有节点】 (14)2、安装docker【所有节点】 (14)3、配置镜像加速器【所有节点,可⽤内部的】 (15)4、启动并查看docker服务【所有节点】 (15)5、驱动、镜像、容器、仓库【⾮必须】 (16)6、dockerHUB远程镜像仓库的使⽤【⾮必须】 (18)6、制作镜像并推送到远程仓库dockerHub (18)7、搭建Harbor私有仓库【⾮必须】 (20)8、将制作的镜像推送到私有仓库Harbor 全流程 (20)第六章安装kubelet、kubeadm、kubectl (22)1、配置kubernetes的阿⾥云yun源【所有节点】 (22)2、安装指定版本kubelet【所有节点】 (22)3、启动kubelet服务【所有节点】 (23)4、安装kubeadm (23)5、创建kubeadm配置的yaml⽂件【只主master】 (23)6、初始化第⼀个节点 (24)7、配置kubectl环境变量【master01】 (24)8、查看组件状态【master01】 (25)9、查看POD状态【master01】 (25)10、配置flannel插件的yaml⽂件【master01】 (25)11、创建flanner相关role和pod (29)12、加⼊集群【master01】 (30)13、其余两个master节点都加⼊集群【master02、master03】 (30)14、环境变量【在master01】去掉sudo (31)15、node节点加⼊集群[NODE01\NODE02] (31)16、查看各个节点加⼊集群情况 (31)第七章配置UI dashboard (32)1、创建 dashboard.yaml 并启动 (32)2、运⾏dashborad (36)3、Dashboard 创建 ServiceAccount 并绑定 Admin ⾓⾊ (36)4、运⾏dashboard的⽤户和⾓⾊绑定 (37)5、运⾏dashboard并登陆 (37)6、dashboard可以⽤的部署⽅式 (37)7、另外⼀种UI:kuboard (38)8、kubectl常⽤命令 (38)第⼋章DASHBOARD 2.0 (39)1、安装calico⽹络插件 (39)2、calico主要步骤 (39)3、查看⽹络 (39)4、Calico⼯具安装 (39)5、安装dashboard2.0 (42)6、dashboard2.0解决经验 (42)第九章服务发现Ingress (42)1、七层负载均衡 (43)2、七层负载均衡优点 (43)3、ingress简单原理 (44)4、基于Traefik的ingress部署 (45)5、访问ingress的UI dashboard (48)6、Ingress对象(以teaefik本⾝的dashboard为例) (48)7、测试ingress域名访问 (49)第⼗章持久化存储(pv/pvc/StorageClass) (51)1、PV-持久化卷 (51)2、NFS (51)3、调⽤NFS (master上或其它节点操作) (52)4、PV的创建 (52)5、PVC新建及绑定 (53)6、使⽤ PVC(⽤ng测试) (53)7、存储测试结果访问 (54)8、StorageClass的配置 (55)第三章 K8S基本概念及搭建环境准备1、架构及服务Iaas :基础架构服务阿⾥云代表Paas:平台及服务新浪云,免运维,dockerSaas:软件及服务Mesos 和 SWARM(docker母公司的) 淘汰阿⾥云有kubernetes的组件选项,k8s采⽤go语⾔2、基本概念轻量级、资源消耗⼩,弹性伸缩、负载均衡(天然的,最新的采⽤IPVS框架,中国的)Pod控制器:掌握各种控制器的特点服务发现:掌握svc原理和服务⽅式服务分类:有状态服务:如数据库,⽐如被踢出集群,再回来就不能⽤了⽆状态服务:如apache,docker更适合⽆状态服务存储:⽤于有状态服务的数据安全:集群的认证、鉴权、访问控制HELM部署:类似于Linux的yum安装,这个是安装⼀个集群3、组件说明、PODAPIserver:所有服务访问统⼀⼊⼝controllermanager:维护副本的期望数⽬scheduler:负责介绍任务,选择合适节点接受任务ETCD:键值对数据库,存储K8S集群重要信息(持久化)Kubectl :实现容器⽣命周期管理Kubectl proxy:写⼊规则⾄ipvsCoredns:可以为集群中的SVC创建⼀个A记录Dashboard:B/S结构的访问体系Ingress:官⽅实现的是4层代理,ingress实现的是7层代理(域名,主机名)Federation:跨K8SPROMETHEUS⾃主式POD,控制器管理的pod4、IP地址规划⾼可⽤K8S集群为避免脑裂⼀般采⽤如三、五、七等奇数个mater节点,⾸先要有⼀个 master 节点,可以先将单⼀节点集群构建完毕,然后再让其他服务器加⼊组成三个master 节点⾼可⽤,然后再以⼯作节点 Node 加⼊。
keepalived中vrrp_script,track_script,notify的使用方法

keepalived中vrrp_script,track_script,notify的使⽤⽅法keepalived中vrrp_script,track_script,notify的使⽤⽅法转⾃:可以在keepalived.conf⽂件中定义的脚本,⽤以实现某个检测功能;例:检测/etc/keepalived⽬录下down⽂件是否存在,如果存在则优先级减20,如果不存在表⽰正常vrrp_script chk {script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"interval 1weight -20注:这个脚本的作⽤是⽤于维护MASTER,使MASTER⼿动下线如何调⽤上⾯定义的脚本呢?在vrrp实例中(vrrp_instance VI_1)加上track_script⽤于追踪脚本track_script {chk}notify的⽤法:notify_master:当当前节点成为master时,通知脚本执⾏任务(⼀般⽤于启动某服务,⽐如nginx,haproxy等)notify_backup:当当前节点成为backup时,通知脚本执⾏任务(⼀般⽤于关闭某服务,⽐如nginx,haproxy等)notify_fault:当当前节点出现故障,执⾏的任务;例:当成为master时启动haproxy,当成为backup时关闭haproxynotify_master "/etc/keepalived/start_haproxy.sh start"notify_backup "/etc/keepalived/start_haproxy.sh stop"⼀个完整的实例:MASTER:初始priority为100BACKUP:初始priority为90模拟MASTER产⽣故障:当检测到/etc/keepalived⽬录下有down⽂件时,priority减少20,变为80;低于BACKUP的priority;此时MASTER变成BACKUP,同时执⾏notify_backup的脚本⽂件(关闭haproxy);同时BACKUP变成MASTER,同时执⾏notify_master的脚本⽂件(启动haproxy);模拟MASTER故障恢复:当删除/etc/keepalived⽬录下的down⽂件时,原MASTER的优先级⼜变为100,⾼于原BACKUP的priority;此时原MASTER由BACKUP⼜抢占成了MASTER,同时执⾏notify_master的脚本⽂件(启动haproxy);同时原BACKUP由MASTER⼜变了BACKUP,同时执⾏notify_backup的脚本⽂件(关闭haproxy);MASTER的配置:global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_script chk {script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"interval 1weight -20}vrrp_instance VI_1 {state MASTERinterface eth1virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {10.0.22.245}track_script {chk}notify_master "/etc/keepalived/start_haproxy.sh start"notify_backup "/etc/keepalived/start_haproxy.sh stop"BACKUP的配置:global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {10.0.22.245}notify_master "/etc/keepalived/start_haproxy.sh start"notify_backup "/etc/keepalived/start_haproxy.sh stop"}start_haproxy.sh的脚本内容:#!/bin/bashcase"$1"instart)/etc/init.d/haproxy start;;stop)/etc/init.d/haproxy stop;;restart)/etc/init.d/haproxy stop/etc/init.d/haproxy start*)echo "Usage:$0 start|stop|restart";;esackeepalived检测nginx,当nginx服务不正常时⾃动降级,当nginx恢复时⾃动升级:check_nginx.sh脚本#!/bin/bashnmap localhost -p 80 | grep "80/tcp open"if [ $? -ne 0 ];thenexit 10finotify.sh脚本:#!/bin/bashVIP=$2sendmail (){subject="${VIP}'s server keepalived state is translate"content="`date +'%F %T'`: `hostname`'s state change to master"echo $content | mail -s "$subject" zhengwei.liu@}case"$1"inmaster)nmap localhost -p 80 | grep "80/tcp open"if [ $? -ne 0 ];then/etc/init.d/nginx startfisendmail;;backup)nginx_psr=`ps -C nginx --no-header | wc -l`if [ $nginx_psr -ne 0 ];then/etc/init.d/nginx stopfi;;*)echo "Usage:$0 master|backup VIP";;esacMASTER配置! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id https}vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 1weight -20}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 54priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.16.8.19/25}track_script {chk_nginx}notify_master "/etc/keepalived/notify.sh master 172.16.8.19"notify_backup "/etc/keepalived/notify.sh backup 172.16.8.19"}BACKUP配置:backup⽆需检测nginx是否正常,默认nginx是未启动的,当升级为MASTER时启动nginx,当降级为BACKUP时关闭! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id https}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 54priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.16.8.19/25}notify_master "/etc/keepalived/notify.sh master 172.16.8.19"notify_backup "/etc/keepalived/notify.sh backup 172.16.8.19"}。
天翼云主机高可用的两种办法

天翼云主机⾼可⽤的两种办法
⽐如A和B两台主机均安装nginx应⽤,要实现⾼可⽤
第⼀种办法
采⽤传统的keepalived⽅式,在A和B两台主机上均安装nginx和keepalived,且各配置好等
然后在天翼云主机详情界⾯,找到"⽹卡",点击右侧的"管理虚拟IP地址"
此时会进⼊到天翼云虚拟私有云界⾯,点击下⽅的"申请虚拟IP"
可以选择⾃动分配或者⼿动分配的形式,获取⼀个虚拟IP
然后就可以给该虚拟IP绑定弹性IP,绑定A和B两台主机
然后进⾏测试等后续⼯作
第⼆种⽅法
使⽤天翼云⾃带的弹性负载均衡器,郑州地区提供的是增强型-性能共享型,可以免费试⽤
接下来的流程就很简单了。
1.点击页⾯右上⾓"创建弹性负载均衡",进⼊申请负载均衡页⾯
2.申请私⽹的是免费的,需要绑定弹性公⽹IP才能使⽤,申请公⽹的需要⽀付⼀定的带宽费⽤,提供有公⽹IP 私有IP地址可以⾃动创建或⼿动创建,公⽹带宽可以按固定带宽计费或者按流量计费
以下使⽤私⽹的来举例
3.绑定弹性IP
4.创建证书
需要事先给使⽤的域名申请好SSL证书,然后在创建证书页⾯直接选择证书然后上传(注意最后的空⾏)
5.添加监听器。
keepalived之vrrp_script详解

keepalived之vrrp_script详解通常情况下,利⽤keepalived做热备,其中⼀台设置为master,⼀台设置为backup。
当master出现异常后,backup⾃动切换为master。
当backup成为master后,master恢复正常后会再次抢占成为master,导致不必要的主备切换。
因此可以将两台keepalived初始状态均配置为backup,设置不同的优先级,优先级⾼的设置nopreempt解决异常恢复后再次抢占的问题。
1、vrrp_script能做什么keepalived只能做到对⽹络故障和keepalived本⾝的监控,即当出现⽹络故障或者keepalived本⾝出现问题时,进⾏切换。
但是这些还不够,我们还需要监控keepalived所在服务器上的其他业务进程,⽐如说nginx,keepalived+nginx实现nginx的负载均衡⾼可⽤,如果nginx异常,仅仅keepalived保持正常,是⽆法完成系统的正常⼯作的,因此需要根据业务进程的运⾏状态决定是否需要进⾏主备切换。
这个时候,我们可以通过编写脚本对业务进程进⾏检测监控。
例如:编写个简单脚本查看haproxy进程是否存活#!/bin/bashcount = `ps aux | grep -v grep | grep haproxy | wc -l`if [ $count > 0 ]; thenexit0elseexit1fi在keepalived的配置⽂件中增加相应配置项vrrp_script checkhaproxy{script "/home/check.sh"interval 3weight -20}vrrp_instance test{...track_script{checkhaproxy}...}2、优先级更新策略keepalived会定时执⾏脚本并对脚本执⾏的结果进⾏分析,动态调整vrrp_instance的优先级。
linux中keepalived卸载

linux中keepalived卸载Linux中的Keepalived是一款用于高可用性和负载均衡的软件。
它可以帮助我们实现服务器集群的故障转移和负载均衡,提高系统的可靠性和性能。
然而,在某些情况下,我们可能需要卸载Keepalived,本文将介绍如何在Linux系统中卸载Keepalived。
一、停止Keepalived服务在卸载Keepalived之前,我们需要先停止Keepalived服务。
可以使用以下命令来停止Keepalived服务:```sudo systemctl stop keepalived```这条命令将停止Keepalived服务的运行。
二、卸载Keepalived软件包卸载Keepalived需要先卸载相关的软件包。
在不同的Linux发行版中,软件包管理工具略有不同。
以下是一些常见的Linux发行版的软件包管理工具及其对应的卸载命令:1. Ubuntu/Debian在Ubuntu和Debian系统中,可以使用apt命令来卸载软件包。
以下是卸载Keepalived软件包的命令:```sudo apt remove keepalived```2. CentOS/RHEL在CentOS和RHEL系统中,可以使用yum命令来卸载软件包。
以下是卸载Keepalived软件包的命令:```sudo yum remove keepalived```3. Fedora在Fedora系统中,可以使用dnf命令来卸载软件包。
以下是卸载Keepalived软件包的命令:```sudo dnf remove keepalived```根据所使用的Linux发行版,选择对应的命令来卸载Keepalived软件包。
三、删除相关配置文件卸载Keepalived后,我们还需要删除相关的配置文件,以确保系统的清洁。
以下是一些常见的Keepalived配置文件的位置:1. Ubuntu/Debian在Ubuntu和Debian系统中,Keepalived的配置文件通常位于/etc/keepalived/目录下。
RabbitMQ集群搭建-镜像模式

RabbitMQ集群搭建-镜像模式可以参考https:///wexiaoword/article/details/81352045服务器介绍node1:192.168.174.10node2:192.168.174.11node3:192.168.174.12node4:192.168.174.13node5:192.168.174.14其中,node1、node2、node3三台服务器安装RabbitMQ服务,node4和node5安装HA-proxy和Keepalived。
服务集群架构HA-proxyHaproxy 介绍以常见的TCP应⽤为例,负载均衡器在接收到第⼀个来⾃客户端的SYN请求时,会通过设定的负载均衡算法选择⼀个最佳的后端服务器,同时将报⽂中⽬标IP地址修改为后端服务器IP,然后直接转发给该后端服务器,这样⼀个负载均衡请求就完成了。
从这个过程来看,⼀个TCP 连接是客户端和服务器直接建⽴的,⽽负载均衡器只不过完成了⼀个类似路由器的转发动作。
在某些负载均衡策略中,为保证后端服务器返回的报⽂可以正确传递给负载均衡器,在转发报⽂的同时可能还会对报⽂原来的源地址进⾏修改。
整个过程下图所⽰Haproxy 的特点是:⾼可⽤,负载均衡。
KeepAlivedKeepAlived 介绍KeepAlived 的特点:通过VRRP协议(虚拟ip)实现⾼可⽤功能(主备切换)。
KeepAlived ⾼可⽤原理注意:master节点恢复时,是否重新接管master⾓⾊,看我们⾃⼰的配置,后⾯配置KeepAlived会讲。
镜像模式镜像模式,是中⼩型企业常⽤的rabbitmq集群架构:镜像模式架构图消息的发布(除了Basic.Publish之外)与消费都是通过master节点完成。
master节点对消息进⾏处理的同时将消息的处理动作通过GM(Guarenteed Multicast)⼴播给所有的slave节点,slave节点的GM收到消息后,通过回调交由mirror_queue_slave进⾏实际的处理。
keepalived 虚拟ip原理
keepalived 虚拟ip原理
keepalived是一个开源的网络高可用性解决方案,其原理可以
简单概括为以下几个步骤:
1. 客户端请求连接到keepalived虚拟IP地址(VIP)。
2. 在keepalived的负载均衡器(LVS)上,VIP与实际服务器
之间建立一条透明的网络链路。
3. keepalived使用多种算法(如轮询、加权轮询、源IP散列等)将客户端请求转发到实际服务器上进行处理。
4. keepalived通过与实际服务器之间的心跳检测,实时监测服
务器的状态。
5. 如果某个服务器宕机或无响应,keepalived会自动将该服务
器从服务列表中移除,确保请求不会被转发到故障服务器。
6. 同时,keepalived会将VIP重新分配给其他正常工作的服务器,确保服务的连续性。
7. 一旦故障服务器恢复正常,keepalived会将其重新加入到服
务列表中,并根据算法再次进行负载均衡。
总的来说,keepalived通过建立虚拟IP地址,并对实际服务器进行实时监控和负载均衡,实现了对服务的高可用性和可靠性。
Nginx配置upstream并且实现负载均衡
Nginx配置upstream并且实现负载均衡感谢看过这⼀些列博⽂和评论的⼩伙伴, 我把⾃⼰所看到的学到的拿到这⾥来分享是想和⼤家⼀起学习进步, 想听听园友给出的意见, 也是对⾃⼰学习过程的⼀个总结.技术⽆⽌境, 我们仍需努⼒!1,话不多说, 这⾥我们来说下很重要的负载均衡, 那么什么是负载均衡呢?由于⽬前现有⽹络的各个核⼼部分随着业务量的提⾼,访问量和数据流量的快速增长,其处理能⼒和计算强度也相应地增⼤,使得单⼀的服务器设备根本⽆法承担。
在此情况下,如果扔掉现有设备去做⼤量的硬件升级,这样将造成现有资源的浪费,⽽且如果再⾯临下⼀次业务量的提升时,这⼜将导致再⼀次硬件升级的⾼额成本投⼊,甚⾄性能再卓越的设备也不能满⾜当前业务量增长的需求。
针对此情况⽽衍⽣出来的⼀种廉价有效透明的⽅法以扩展现有⽹络设备和服务器的带宽、增加吞吐量、加强⽹络数据处理能⼒、提⾼⽹络的灵活性和可⽤性的技术就是负载均衡(Load Balance)。
2, 负载均衡的种类1)⼀种是通过硬件来进⾏解决,常见的硬件有NetScaler、F5、Radware和Array等商⽤的负载均衡器,但是它们是⽐较昂贵的2)⼀种是通过软件来进⾏解决的,常见的软件有LVS、Nginx、apache等,它们是基于Linux系统并且开源的负载均衡策略.3, 这⾥我们只来说Nginx(其他的⼤家有兴趣可以⾃⾏查阅相关⽂档)Nginx(发⾳同 engine x)是⼀款轻量级的Web 服务器/反向代理服务器及电⼦邮件(IMAP/POP3)代理服务器,并在⼀个BSD-like 协议下发⾏。
由俄罗斯的程序设计师Igor Sysoev(伊⼽尔·西索夫)所开发,供俄国⼤型的⼊⼝⽹站及搜索引擎Rambler(漫步者)(俄⽂:Рамблер)使⽤。
其特点是占有内存少,并发能⼒强,事实上nginx的并发能⼒确实在同类型的⽹页服务器中表现较好,中国⼤陆使⽤nginx⽹站⽤户有:新浪、⽹易、腾讯等。
Codis搭建与使用
Codis 高可用负载均衡群集的搭建与使用声明此篇文章,涉及到东西比较多,文章比较长,适合耐心的童鞋们阅读,生产环境部署可参考此篇文章。
Codis 并不太适合key 少,但是value 特别大的应用,而且你的key 越少,value 越大,最后就会退化成单个redis 的模型(性能还不如raw redis),所以Codis 更适合海量Key, value比较小(<= 1 MB) 的应用。
codis-proxy 提供连接集群redis服务的入口codis-redis-group 实现redis读写的水平扩展,高性能codis-redis 实现redis实例服务,通过codis-ha实现服务的高可用实验环境网络拓扑图群集架构图机器与应用列表System version: CentOS 6.5IP: 192.168.43.130 hostname: vmware-130apps: keepalived+haproxyMaster,zookeeper_1,codis_proxy_1, codis_config, codis_server_master,slaveIP: 192.168.43.131 hostname: vmware-131apps: zookeeper_2, codis_proxy_2, codis_server_master,slaveIP: 192.168.43.132 hostname: vmware-132apps: keepalived + haproxy Backup, zookeeper_3, codis_proxy_3, codis_server_master,slaveVIP: 192.168.43.100 Port: 45001备注:由于是虚拟测试环境,非生产环境,所以一台机器跑多个应用,如应用于生产环境,只需把应用分开部署到相应机器上即可。
一、初始化CentOS系统1. 使用镜像站点配置好的yum安装源配置文件cd /etc/yum.repos.d//bin/mv CentOS-Base.repo CentOS-Base.repo.bakwget /.help/CentOS6-Base-163.repo接下来执行如下命令,检测yum是否正常yum clean all #清空yum缓存yum makecache #建立yum缓存然后使用如下命令将系统更新到最新rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* #导入签名KEY到RPMyum upgrade -y #更新系统内核到最新2. 关闭不必要的服务for sun in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $sun off;done for sun in `chkconfig --list|grep 5:on|awk '{print $1}'`;do chkconfig --level 5 $sun off;done for sun in crond rsyslog sshd network;do chkconfig --level 3 $sun on;donefor sun in crond rsyslog sshd network;do chkconfig --level 5 $sun on;done3. 安装依赖包yum install -y gcc make g++ gcc-c++ automake lrzsz openssl-devel zlib-* bzip2-* readline* zlib-* bzip2-*4. 创建软件存放目录mkdir /data/packages5. 软件包版本以及下载地址:jdk1.8.0_45zookeeper-3.4.6go1.4.2pcre-8.37haproxy-1.4.22keepalived-1.4.26cd /data/packageswget /zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gzwget /static/go/go1.4.2.linux-amd64.tar.gzwget ftp:///pub/software/programming/pcre/pcre-8.37.tar.gzwget /software/keepalived-1.2.16.tar.gz通过浏览器自行下载:6. 重启系统[root@vmware-130 ~]# init 6二、部署Zookeeper群集1.配置hosts文件( zookeeper节点机器上配置)[root@vmware-130 ~]# vim /etc/hosts192.168.43.130 vmware-130192.168.43.131 vmware-131192.168.43.132 vmware-1322.安装java 坏境 ( zookeeper节点机器上配置 )[root@vmware-130 ~]# cd /data/packages[root@vmware-130 packages ]# tar zxvf jdk-8u45-linux-x64.tar.gz -C /usr/local [root@vmware-130 packages ]# cd /usr/local[root@vmware-130 local ]# ln -s jdk1.8.0_45 java3. 安装Zookeeper ( zookeeper节点机器上配置 )cd /data/packagestar zxvf zookeeper-3.4.6.tar.gz -C /usr/localln -s zookeeper-3.4.6 zookeepercd /usr/local/zookeeper/4.设置环境变量 ( zookeeper节点机器上配置 )vim /etc/profileJAVA_HOME=/usr/local/javaJRE_HOME=$JAVA_HOME/jreZOOKEEPER_HOME=/usr/local/zookeeperJAVA_FONTS=/usr/local/java/jre/lib/fontsCLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jarPATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ZOOKEEPER_HOME/binexport JAVA_HOME PATH CLASSPATH JRE_HOME ZOOKEEPER_HOME#生效环境变量source /etc/profile5. 修改zookeeper配置文件( zookeeper节点机器上配置 )vi /usr/local/zookeeper/conf/zoo.cfgtickTime=2000initLimit=10syncLimit=5clientPort=2181autopurge.snapRetainCount=500autopurge.purgeInterval=24dataDir=/data/zookeeper/datadataLogDir=/data/zookeeper/logsserver.1=192.168.43.130:2888:3888server.2=192.168.43.131:2888:3888server.3=192.168.43.132:2888:3888#创建数据目录和日志目录( zookeeper节点机器上配置)mkdir -p /data/zookeeper/datamkdir -p /data/zookeeper/logs6. 在zookeeper节点机器上创建myid文件,节点对应id在43.130机器上创建myid,并设置为1与配置文件zoo.cfg里面server.1对应。
服务器双机热备教程
服务器双机热备教程服务器双机热备是一种提高服务器可用性和可靠性的技术手段,也被称为高可用性集群。
本文将详细介绍服务器双机热备的原理、配置步骤和注意事项。
一、原理介绍服务器双机热备的原理是将两台服务器配置为主备关系,主服务器负责处理用户请求,备服务器处于待机状态。
当主服务器发生故障或不可用时,备服务器会自动接管主服务器的工作,并继续提供服务,从而实现服务器的高可用性。
主备服务器之间通过心跳检测来监测对方的状态,常用的心跳检测方式有互ping和RS-232串口心跳。
当主服务器的心跳检测失败时,备服务器会发起切换请求,使其自己成为主服务器继续提供服务。
二、配置步骤1. 硬件准备:购买两台相同配置的服务器,确保服务器的硬件能够支持双机热备功能。
2. 系统安装:安装相同的操作系统和服务程序,并对操作系统进行适当的优化和调整。
3. 安装双机热备软件:选择适合的双机热备软件并进行安装配置。
常用的双机热备软件有Heartbeat、Keepalived等。
4. 配置主备服务器间的网络连接:可以通过专用网络线缆连接主备服务器的网口,实现高速、可靠的通信。
5. 配置双机热备软件:根据双机热备软件的要求进行配置,包括指定主服务器和备服务器,设置心跳检测方式和间隔时间等。
6. 测试和监控:进行功能测试,确保主备服务器间的切换正常可靠。
同时,配备监控系统,实时监控服务器的状态和性能。
三、注意事项1. 选择合适的双机热备软件:不同的双机热备软件有不同的特点和适用场景,需要根据自身需求选择适合的软件。
2. 确保硬件可靠性:服务器双机热备技术可以提高服务器的可用性,但如果硬件故障,双机热备也无法起到作用。
因此,选择可靠的服务器硬件非常重要。
3. 定期测试和演练:定期进行主备服务器间的切换测试,以确保切换过程的可靠性和服务的连续性。
同时,定期进行双机热备的演练,提高操作的熟练度。
4. 注意数据同步和一致性:主备服务器之间需要进行数据同步,以保证切换过程中数据的一致性。