keepalived安装异常

现象:启动之后 无报错。但是无法连接 lvs,

          查看日志发现,没有进行识别就自动成为了主

          主要是 日志里面连续三句这样的话

                 IPVS: Protocol not available

解决

          执行    modprobe -q ip_vs||true 

<think>我们正在讨论Keepalived安装和部署指南。根据用户的问题和之前的引用,Keepalived通常用于实现高可用性,比如与LVS、Nginx等结合使用。以下是一个详细的Keepalived安装部署指南。 ### Keepalived安装部署指南 #### 一、安装前准备 1. **系统要求**:Linux系统(CentOS/Ubuntu等) 2. **网络配置**:确保服务器之间网络互通,建议使用静态IP 3. **依赖安装**: ```bash # CentOS yum install -y gcc openssl-devel popt-devel ipvsadm # Ubuntu apt-get install -y build-essential libssl-dev libpopt-dev ipvsadm ``` #### 二、安装Keepalived 1. **源码安装(推荐)**: ```bash # 下载源码包(以2.2.8版本为例) wget https://www.keepalived.org/software/keepalived-2.2.8.tar.gz tar -zxvf keepalived-2.2.8.tar.gz cd keepalived-2.2.8 # 配置、编译、安装 ./configure --prefix=/usr/local/keepalived make && make install ``` 2. **系统包管理器安装**: ```bash # CentOS yum install -y keepalived # Ubuntu apt-get install -y keepalived ``` #### 三、配置Keepalived(主备模式示例) 1. **主服务器配置**(假设VIP为192.168.1.100): ```bash vi /etc/keepalived/keepalived.conf ``` 配置内容: ```conf global_defs { router_id LVS_MASTER # 标识,备机改为LVS_BACKUP } vrrp_instance VI_1 { state MASTER # 主节点为MASTER,备机为BACKUP interface eth0 # 绑定网卡名 virtual_router_id 51 # 虚拟路由ID,主备必须相同 priority 100 # 优先级,主高于备(如备机设为90) advert_int 1 # 心跳间隔(秒) authentication { auth_type PASS auth_pass 1111 # 密码,主备一致 } virtual_ipaddress { 192.168.1.100 # 虚拟IP(VIP) } } ``` 2. **备服务器配置**: 修改`state`为`BACKUP`,`priority`低于主节点(如90),其余相同。 #### 四、启动与验证 1. **启动服务**: ```bash systemctl start keepalived systemctl enable keepalived ``` 2. **查看VIP绑定**: ```bash ip addr show eth0 # 在主节点应看到VIP ``` 3. **故障切换测试**: 停止主节点Keepalived服务,VIP应自动漂移到备节点。 #### 五、高级配置(结合Nginx示例) 当Keepalived监控Nginx进程时,可添加以下脚本检测: 1. **创建检测脚本**: ```bash vi /etc/keepalived/check_nginx.sh ``` 内容: ```bash #!/bin/bash if ! pgrep nginx; then systemctl stop keepalived # 若Nginx停止,则关闭Keepalived触发切换 fi ``` 赋予执行权限: ```bash chmod +x /etc/keepalived/check_nginx.sh ``` 2. **配置Keepalived调用脚本**: ```conf vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" interval 2 # 每2秒执行一次 weight -20 # 检测失败则优先级降低20 } vrrp_instance VI_1 { ... track_script { chk_nginx # 引用脚本 } } ``` #### 六、生产环境建议 - **日志监控**:查看`/var/log/messages`获取切换记录 - **双主模式**:通过配置多个`vrrp_instance`实现流量分担 - **安全加固**:使用防火墙限制VRRP协议(协议号112)仅允许信任节点[^3] > **注意**: > - 确保虚拟路由ID(`virtual_router_id`)在同一个局域网内唯一 > - 避免防火墙阻断VRRP组播(IP协议号112) --- §§相关问题§§ 1. Keepalived如何实现与Nginx的双主高可用架构? 2. Keepalived的VRRP协议工作原理是什么? 3. 如何配置Keepalived的邮件告警功能? 4. Keepalived与ZooKeeper在服务发现场景下的区别? 5. Keepalived如何防止脑裂问题?</think>### Keepalived安装与部署指南 Keepalived是Linux环境下实现**高可用性(HA)**的核心工具,通过VRRP协议实现IP故障转移。以下是详细部署流程: --- #### 一、环境准备 1. **系统要求** - Linux系统(CentOS/Ubuntu) - 至少2台服务器(主备节点) - 静态IP配置 - 防火墙开放VRRP协议(IP协议号112) 2. **网络规划** | 节点类型 | IP地址 | 虚拟IP (VIP) | |----------|--------------|----------------| | 主节点 | 192.168.1.10 | 192.168.1.100 | | 备节点 | 192.168.1.11 | 192.168.1.100 | --- #### 二、安装Keepalived ```bash # CentOS/RHEL yum install -y keepalived # Ubuntu/Debian apt-get install -y keepalived ``` --- #### 三、配置主节点 编辑配置文件: ```bash vi /etc/keepalived/keepalived.conf ``` 配置内容: ```conf global_defs { router_id LVS_MASTER # 节点唯一标识 } vrrp_instance VI_1 { state MASTER # 主节点角色 interface eth0 # 绑定网卡 virtual_router_id 51 # 虚拟路由ID(主备需一致) priority 100 # 优先级(主>备) advert_int 1 # 心跳间隔(秒) authentication { auth_type PASS # 认证方式 auth_pass 1111 # 密码(主备需一致) } virtual_ipaddress { 192.168.1.100/24 # 虚拟IP(VIP) } } ``` > 启动服务:`systemctl start keepalived && systemctl enable keepalived` [^1] --- #### 四、配置备节点 ```conf global_defs { router_id LVS_BACKUP # 修改标识 } vrrp_instance VI_1 { state BACKUP # 备节点角色 priority 90 # 优先级低于主节点 # 其他配置与主节点相同 } ``` > 启动服务:`systemctl start keepalived` --- #### 五、验证高可用 1. **查看VIP绑定** ```bash ip addr show eth0 | grep 192.168.1.100 # 输出:inet 192.168.1.100/24 scope global secondary eth0 ``` 2. **故障切换测试** - 主节点执行:`systemctl stop keepalived` - 备节点自动接管VIP(观察日志:`tail -f /var/log/messages`) 3. **状态监控** ```bash keepalived -v # 查看版本 systemctl status keepalived # 服务状态 ``` --- #### 六、高级配置(Nginx双机示例) ```conf vrrp_script chk_nginx { script "/usr/bin/killall -0 nginx" # 检测Nginx进程 interval 2 # 每2秒检测一次 weight -20 # 失败时优先级降低20 } vrrp_instance VI_1 { track_script { chk_nginx # 引用检测脚本 } # 原配置保持不变... } ``` > 当Nginx进程异常时,自动触发主备切换 [^2] --- #### 七、生产环境优化建议 1. **防止脑裂** - 使用多播检测:`unicast_peer { 192.168.1.11 }`(指定对端IP) - 部署第三方仲裁(如etcd)[^4] 2. **日志管理** ```bash vi /etc/rsyslog.conf # 添加:local0.* /var/log/keepalived.log systemctl restart rsyslog ``` 3. **安全加固** - 修改默认VRRP组播地址(`vrrp_mcast_group4 224.0.0.18`) - 启用SSL通信加密 > **关键参数说明** > - `virtual_router_id`:范围1-255,同一局域网内需唯一 > - `advert_int`:建议1-3秒,避免网络抖动误切换 > - `nopreempt`:非抢占模式(备节点不主动夺回VIP)[^3] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值