centos haproxy Ubuntu centos

大家好,今天来为大家解答centos haproxy这个问题的一些问题点,包括Ubuntu centos也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

学Linux要学到什么程度

可以按照这个来学,学完就可以找工作啦!

第一阶段:linux基础入门

1.开班课程介绍-规章制度介绍-破冰活动;

2. Linux硬件基础/Linux发展历史;

3. Linux系统安装/xshell连接/xshell优化/SSH远程连接故障问题排查

4.第一关一大波命令及特殊字符知识考试题讲解

5. L inux基础优化

6. Linux目录结构知识精讲

7.第二关一大波命令及特殊知识考试题讲解(上)

8.第二关一大波命令及特殊知识考试题讲解(下)

9. Linux文件属性一大堆知识精讲

10. Linux通配符/正则表达式

11.第三关一大波命令及重要知识考试题讲解(上)

12.第三关一大波命令及重要知识考试题讲解(下)

13. Linux系统权限(上)

14. Linux系统权限(下)

15.第一阶段结束需要导师或讲师对整体课程进行回顾

第二阶段:linux系统管理进阶

1. Linux定时任务

2. Linux用户管理

3. Linux磁盘与文件系统(上)

4. Linux磁盘与文件系统(中下)

5. Linux三剑客之sed命令

第三阶段:Linux Shell基础

1. Shell编程基础1

2. Shell编程基础234

3. Linux三剑客之awk命令

第四阶段:Linux网络基础

1.计算机网络基础上

2.计算机网络基础下

3.第二阶段结束需要导师或讲师对整体课程进行回顾。

第五阶段:Linux网络服务

1.集群实战架构开始及环境准备

2. rsync数据同步服务

3. Linux全网备份项目案例精讲

4. nfs网络存储服务精讲

5. inotify/sersync实时数据同步/nfs存储实时备份项目案例精讲

第六阶段:Linux重要网络服务

1. http协议/www服务基础

2. nginx web介绍及基础实践

3. nginx web精讲结束

4. lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统

5. nginx负载均衡深入透彻

6. keepalived高可用深入透彻

第七阶段:Linux中小规模集群构建与优化(50台)

1.期中架构开战说明+期中架构部署回顾

2.全体昼夜兼程部署期中架构并完成上台述职演讲(加上两个周末共9天)

3. kickstart cobbler批量自动安装系统

4. pptp vpn与ntp服务

5. memcached原理及部署/作为缓存及session会话共享

第八阶段:Ansible自动化运维与Zabbix监控

1. SSH服务秘钥认证

2. ansible批量自动化管理集群(入门及深入)

3. zabbix监控

第九阶段:大规模集群高可用服务(Lvs、Keepalived)

1. Centos7系统自行安装/centos6与7区别

2. lvs负载均衡集群/keepalived管理LVS集群

第十阶段:Java Tomcat服务及防火墙Iptables

1. iptables防火墙精讲上

2. iptables防火墙精讲下

3. tomcat java应用服务/nginx配合tomcat服务部署及优化

第十一阶段:MySQL DBA高级应用实践

1. MySQL数据库入门基础命令

2. MySQL数据库进阶备份恢复

3. MySQL数据库深入事务引擎

4. MySQL数据库优化SQL语句优化

5. MySQL数据库集群主从复制/读写分离

6. MySQL数据库高可用/mha/keepalved

第十二阶段:高性能数据库Redis和Memcached课程

第十三阶段:Linux大规模集群架构构建(200台)

第十四阶段:Linux Shell编程企业案例实战

第十五阶段:企业级代码发布上线方案(SVN和Git)

1. GIT管理

2.代码上线项目案例

第十六阶段企业级Kvm虚拟化与OpenStack云计算

1. KVM虚拟化企业级实战

2. OpenStack云计算企业级实战

第十七阶段公有云阿里云8大组件构建集群实战

第十八阶段:Docker技术企业应用实践

1. Docker容器与微服务深入实践

2.大数据Hadoop生态体系及实践

第十九阶段:Python自动化入门及进阶

第二十阶段:职业规划与高薪就业指导

搭建TiDB负载均衡环境-HAproxy+KeepAlived实践

搭建TiDB负载均衡环境,结合HAproxy和KeepAlived,实现TiDB Server层的高可用与负载均衡。下文将简化并详细阐述搭建流程。

一、环境准备

TiDB版本:V7.1.0

HAproxy版本:2.6.2

OS环境:Centos 7.9

二、HAproxy安装与配置

主备节点上同时安装,配置文件保持一致。

安装依赖包(例如:yum-y install epel-release gcc systemd-devel)。

编译并安装HAproxy。

编辑haproxy.cfg配置文件,设置监听端口、后端服务器等参数。

创建haproxy运行所需目录。

修改系统参数并使配置生效(sysctl-p)。

启动HAproxy服务。

访问HAproxy监控页面,验证配置。

三、Keepalived安装与配置

安装Keepalived,实现VIP自动切换与HAproxy进程恢复。

在主节点上编辑keepalived.conf,配置虚拟路由器ID、router_id、priority和state等参数。

在备节点上进行相同配置,确保参数一致但有区别。

编写脚本(chk_haproxy.sh)检测HAproxy状态,实现自动启动与关闭。

确保Keepalived在系统启动时自动启动。

四、环境验证

启动备节点的Keepalived,验证HAproxy进程状态和VIP挂载。

启动主节点的Keepalived,观察VIP自动切换到主节点的过程。

模拟HAproxy异常情况,测试Keepalived的自动恢复功能。

五、IP透传功能测试

修改haproxy配置文件,启用PROXY协议。

在TiDB集群参数中添加proxy-protocol.networks配置。

使用VIP连接TiDB集群,验证SHOW PROCESSLIST时显示的客户端IP。

六、常见问题与参考

HAproxy启动报错:检查系统参数配置和生效情况。

Keepalived脚本启动时的警告:确保脚本安全运行,调整权限设置。

TiDB日志异常报错:参考相关文档,调整配置或查找具体错误原因。

通过上述步骤,可以构建一个稳定、高效的TiDB负载均衡环境,实现高可用与负载均衡功能。注意在实际部署时根据具体需求调整配置参数,并确保安全性和稳定性。

Keepalived工作原理

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

Keepalived采用是模块化设计,不同模块实现不同的功能。

keepalived主要有三个模块,分别是core、check和vrrp。

core:是keepalived的核心,负责主进程的启动和维护,全局配置文件的加载解析等

check: 负责healthchecker(健康检查),包括了各种健康检查方式,以及对应的配置的解析包括LVS的配置解析;可基于脚本检查对IPVS后端服务器健康状况进行检查

vrrp:VRRPD子进程,VRRPD子进程就是来实现VRRP协议的

keepalived配置文件:

Keepalived配置文件为:keepalived.conf;

主要有三个配置区域,分别是:全局配置(Global Configuration)、VRRPD配置、LVS配置 

全局配置又包括两个子配置: 全局定义(global definition) 静态IP地址/路由配置(static

ipaddress/routes)

Keepalived服务VRRP的工作原理:

Keepalived高可用对之间是通过 VRRP进行通信的, VRRP是通过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主宕机的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务

在Keepalived服务对之间,只有作为主的服务器会一直发送 VRRP广播包,告诉备它还活着,此时备不会抢占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性.接管速度最快

出现脑裂的原因:

高可用服务器对之间心跳线链路发生故障,导致无法正常通信。

因心跳线坏了(包括断了,老化)。

因网卡及相关驱动坏了,ip配置及冲突问题(网卡直连)

因心跳线间连接的设备故障(网卡及交换机)

因仲裁的机器出问题(采用仲裁的方案)

高可用服务器上开启了 iptables防火墙阻挡了心跳消息传输。

高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败

其他服务配置不当等原因,如心跳方式不同,心跳广插冲突、软件Bug等。

如何解决脑裂:

① 同时使用串行电缆和以太网电缆连接,同时用两条心跳线路,这样一条线路坏了,另一个还是好的,依然能传送心跳消息。

② 当检测到裂脑时强行关闭一个心跳节点(这个功能需特殊设备支持,如Stonith、feyce)。相当于备节点接收不到心跳消患,通过单独的线路发送关机命令关闭主节点的电源。

③ 做好对裂脑的监控报警(如邮件及手机短信等或值班).在问题发生时人为第一时间介入仲裁,降低损失。管理员可以通过手机回复对应数字或简单的字符串操作返回给服务器.让服务器根据指令自动处理相应故障这样解决故障的时间更短。

一、实验环境

操作系统:CentOS7.2 Minial

###################

serverA:

eno16777736  192.168.1.104

eno33554984  192.168.1.105

##########################

serverB:

eno16777736  192.168.1.109

eno33554984  192.168.1.106

###########################

vip01:192.168.1.111

vip02:192.168.1.112

二、设置防火墙

/usr/bin/firewall-cmd--direct

--permanent--add-rule ipv4 filter INPUT 0--in-interface eth0--destination${组播地址}--protocol vrrp-jACCEPT

/usr/bin/firewall-cmd--reload

三、软件安装

在serverA和serverB上

# rpm-ivh--force libnl3-3.2.28-4.el7.x86_64.rpm

# rpm-ivh--forcelm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64.rpm

# rpm-ivh--force net-snmp-agent-libs-5.7.2-32.el7.x86_64.rpm

# rpm-ivh--force net-snmp-libs-5.7.2-32.el7.x86_64.rpm

# rpm-ivh--force ipset-libs-6.38-3.el7_6.x86_64.rpm

# rpm-ivh--force keepalived-1.3.5-6.el7.x86_64.rpm

四、配置keepalived

如果不使用 VRRP Sync Groups如果keepalived主机有两个网段,每个网段开启一个VRRP实例,如果对外的网段出现问题,VRRPD认为自己仍然认为健康,因此 Master和Backup相互切换,从而导致服务不能正常使用,同时高可用集群也不能正常运行,Sync group就是为了解决该问题,可以把两个实例放进同一个Sync Group中!

serverA

# vim/etc/keepalived/keepalived.conf

######################################

! Configuration File for keepalived

global_defs{

router_id LVS_DEVEL

}

vrrp_sync_group VG1{

group{

VI_1

VI_2

}

}

vrrp_instance VI_1{

state BACKUP

interface eno16777736

virtual_router_id 51

priority 100

nopreempt

advert_int 1

authentication{

auth_type PASS

auth_pass 1111

}

track_interface{

eno16777736

eno33554984

}

virtual_ipaddress{

192.168.1.111

}

}

vrrp_instance VI_2{

state BACKUP

interface eno33554984

virtual_router_id 52

priority 100

nopreempt

advert_int 1

authentication{

auth_type PASS

auth_pass 2222

}

track_interface{

eno16777736

eno33554984

}

virtual_ipaddress{

192.168.1.112

}

}

serverB

# vim/etc/keepalived/keepalived.conf

######################################

! Configuration File for keepalived

global_defs{

router_id LVS_DEVEL

}

vrrp_sync_group VG1{

group{

VI_1

VI_2

}

}

vrrp_instance VI_1{

state BACKUP

interface eno16777736

virtual_router_id 51

priority 90

nopreempt

advert_int 1

authentication{

auth_type PASS

auth_pass 1111

}

track_interface{

eno16777736

eno33554984

}

virtual_ipaddress{

192.168.1.111

}

}

vrrp_instance VI_2{

state BACKUP

interface eno33554984

virtual_router_id 52

priority 90

nopreempt

advert_int 1

authentication{

auth_type PASS

auth_pass 2222

}

track_interface{

eno16777736

eno33554984

}

virtual_ipaddress{

192.168.1.112

}

}

五、测试

在serverA和 serverB上

# systemclt start keepalived

在serverA

阅读剩余
THE END