keepalived基础介绍
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.keepalived概述
1>.什么是keepalived
vrrp协议(Virtual Router Redundancy Protocol)的软件实现,原生设计目的为了高可用ipvs服务。 keepalived有以下组件: 用户空间核心组件(Core components): VRRP Stack: 定期发送广播包通知其它节点自己拥有的IP地址,即VIP消息报告。 Checkers: 在ipvs模式下使用,用来监测服务器(real server)是否存货。 System call 顾名思义,用来标记服务器(real server)的权重。 SMTP-邮件组件 发送邮件通知的组件。 IPVS wrapper: 根据咱们自定义的配置文件生成相应的IPVS规则。 Netlink Reflector: 用来传输数据的网络接口。 WatchDog: 监控进程,用来监控以上组件的进程。 控制组件(Control Plane): 配置文件分析器,说白了就是解析配置文件的组件。 IO复用器(Scheduler-I/O Multiplexer): IO多路复用的一个组件。 内存管理组件(Memory Mngt): 顾名思义,管理内存的组件。 通告: 心跳,优先级等;周期性 工作方式: 抢占式,非抢占式 安全工作认证: 无认证 简单字符认证:预共享密钥 工作模式: 主/备:单虚拟路由器 主/主:主/备(虚拟路由器1),备/主(虚拟路由器2) 博主推荐阅读: https://keepalived.org/documentation.html
2>.keepalived功能
基于vrrp协议完成地址流动
为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)
为ipvs集群的各RS做健康状态检测
基于脚本调用接口通过执行脚本完成脚本中定义的功能,进而影响集群事务,以此支持nginx、haproxy等服务
3>.keepalived术语
虚拟路由器(Virtual Router):
虚拟路由器标识:VRID(0-255),唯一标识虚拟路由器
物理路由器: master(主设备) backup(备用设备) priority(优先级) VIP(Virtual IP) VMAC(Viruta lMAC (00-00-5e-00-01-VRID))
二.安装keepalived
1>.使用yum方式安装keepalived
[root@node102.yinzhengjie.org.cn ~]# yum -y install keepalived Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 8.3 kB 00:00:00 * base: mirrors.aliyun.com * epel: mirrors.njupt.edu.cn * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base | 3.6 kB 00:00:00 epel | 5.3 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/2): epel/x86_64/updateinfo | 1.0 MB 00:00:03 (2/2): epel/x86_64/primary_db | 6.9 MB 00:00:46 Resolving Dependencies --> Running transaction check ---> Package keepalived.x86_64 0:1.3.5-16.el7 will be installed --> Processing Dependency: libnetsnmpmibs.so.31()(64bit) for package: keepalived-1.3.5-16.el7.x86_64 --> Processing Dependency: libnetsnmpagent.so.31()(64bit) for package: keepalived-1.3.5-16.el7.x86_64 --> Processing Dependency: libnetsnmp.so.31()(64bit) for package: keepalived-1.3.5-16.el7.x86_64 --> Running transaction check ---> Package net-snmp-agent-libs.x86_64 1:5.7.2-43.el7 will be installed --> Processing Dependency: libsensors.so.4()(64bit) for package: 1:net-snmp-agent-libs-5.7.2-43.el7.x 86_64---> Package net-snmp-libs.x86_64 1:5.7.2-43.el7 will be installed --> Running transaction check ---> Package lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ===================================================================================================== Package Arch Version Repository Size ===================================================================================================== Installing: keepalived x86_64 1.3.5-16.el7 base 331 k Installing for dependencies: lm_sensors-libs x86_64 3.4.0-8.20160601gitf9185e5.el7 base 42 k net-snmp-agent-libs x86_64 1:5.7.2-43.el7 base 706 k net-snmp-libs x86_64 1:5.7.2-43.el7 base 750 k Transaction Summary ===================================================================================================== Install 1 Package (+3 Dependent packages) Total download size: 1.8 M Installed size: 6.0 M Downloading packages: (1/4): lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64.rpm | 42 kB 00:00:00 (2/4): keepalived-1.3.5-16.el7.x86_64.rpm | 331 kB 00:00:01 (3/4): net-snmp-libs-5.7.2-43.el7.x86_64.rpm | 750 kB 00:00:00 (4/4): net-snmp-agent-libs-5.7.2-43.el7.x86_64.rpm | 706 kB 00:00:01 ----------------------------------------------------------------------------------------------------- Total 1.0 MB/s | 1.8 MB 00:00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 1:net-snmp-libs-5.7.2-43.el7.x86_64 1/4 Installing : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64 2/4 Installing : 1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 3/4 Installing : keepalived-1.3.5-16.el7.x86_64 4/4 Verifying : keepalived-1.3.5-16.el7.x86_64 1/4 Verifying : 1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 2/4 Verifying : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64 3/4 Verifying : 1:net-snmp-libs-5.7.2-43.el7.x86_64 4/4 Installed: keepalived.x86_64 0:1.3.5-16.el7 Dependency Installed: lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7 net-snmp-agent-libs.x86_64 1:5.7.2-43.el7 net-snmp-libs.x86_64 1:5.7.2-43.el7 Complete! [root@node102.yinzhengjie.org.cn ~]#