centos7启动keepalived后不能绑定vip
时间: 2024-12-13 08:23:17 浏览: 5
当CentOS 7系统上安装并配置了Keepalived,但是尝试绑定VIP(Virtual IP地址)时遇到问题,可能有以下几个原因:
1. **权限不足**:确认运行`keepalived`服务的用户是否拥有足够的权限去操作网络接口。你可以检查文件`/etc/sysconfig/iptables`和`/etc/sysconfig/network-scripts/ifcfg-ethX`(X为你指定的网卡名称),确保该用户对这些文件有适当的修改权限。
2. **防火墙设置**:检查firewalld或iptables防火墙规则,确保VIP相关的端口和服务允许通过。可能需要添加一条条目到相应的防火墙规则中。
3. **IP冲突或已占用**:检查目标VIP地址是否已被其他服务占用,或者与现有网络设备的IP冲突。可以使用`ip addr show`命令查看当前IP分配情况。
4. **配置错误**:检查`keepalived`的配置文件`/etc/keepalived/keepalived.conf`,特别是VIP配置部分(VRRP instance部分)。确保`virtual_ipaddress`、`priority`等字段设置正确,并且虚拟路由器ID(VRID)未与其他设备冲突。
5. **硬件限制**:如果使用的是硬件负载均衡器,检查硬件是否支持绑定多个VIP,并确认是否正确设置了。
解决步骤通常包括检查上述问题,修复后重启`keepalived`服务以便应用更改:
```
sudo systemctl restart keepalived
```
相关问题
centos7 haproxy 加keepalived 实现后端应用udp73端口负载均衡高可用的配置
以下是 CentOS 7 上实现 HAProxy 和 Keepalived 高可用负载均衡的配置过程:
1. 安装 HAProxy 和 Keepalived
在 CentOS 7 上可以使用 yum 命令来安装 HAProxy 和 Keepalived:
```
yum install haproxy keepalived -y
```
2. 配置 HAProxy
编辑 HAProxy 配置文件 /etc/haproxy/haproxy.cfg,添加如下配置:
```
frontend udp73
bind *:73
default_backend backend_udp73
backend backend_udp73
balance roundrobin
mode udp
server server1 IP1:73 check
server server2 IP2:73 check
```
其中,frontend udp73 部分是定义了一个名为 udp73 的前端,绑定了 UDP 73 端口,并将请求转发到 backend_udp73 后端;backend_udp73 部分定义了一个名为 backend_udp73 的后端,使用 roundrobin 算法进行负载均衡,使用 UDP 协议,同时配置了两个服务器节点的 IP 地址和端口号。
3. 配置 Keepalived
编辑 Keepalived 配置文件 /etc/keepalived/keepalived.conf,添加如下配置:
```
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100/24 dev eth0
}
}
virtual_server 192.168.1.100 73 {
delay_loop 6
lb_algo rr
lb_kind NAT
protocol UDP
real_server IP1 73 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
}
}
real_server IP2 73 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
}
}
}
```
其中,global_defs 部分定义了 Keepalived 路由器 ID;vrrp_instance 部分定义了一个名为 VI_1 的实例,配置了 MASTER 状态、使用 eth0 网卡、虚拟路由器 ID 为 51、优先级为 101、认证密码为 1111、虚拟 IP 地址为 192.168.1.100/24;virtual_server 部分定义了一个名为 192.168.1.100:73 的虚拟服务器,使用 roundrobin 算法进行负载均衡,使用 NAT 模式,协议为 UDP,配置了两个服务器节点的 IP 地址和端口号。
4. 启动 HAProxy 和 Keepalived 服务
启动 HAProxy 和 Keepalived 服务,并将它们设置为开机自启动:
```
systemctl start haproxy
systemctl start keepalived
systemctl enable haproxy
systemctl enable keepalived
```
5. 测试负载均衡和高可用
使用 netcat 命令测试负载均衡和高可用,如下所示:
```
nc -u 192.168.1.100 73
```
如果配置正确,在两个服务器节点上都应该能够收到请求。同时,当其中一个节点出现故障时,另一个节点会接管服务,并继续提供服务。
keepalived搭建
Keepalived是Linux下的一款高可用性软件,它可以实现在多台服务器之间共享一个虚拟IP地址,当主服务器故障时,自动将虚拟IP地址切换到备用服务器,从而保证服务的高可用性和可靠性。下面是使用Keepalived实现高可用性的简单步骤:
1.安装Keepalived
在Linux系统中,可以使用包管理工具apt-get或yum来安装Keepalived。
对于Debian/Ubuntu系统,可以使用以下命令安装:
```
sudo apt-get install keepalived
```
对于CentOS/RHEL系统,可以使用以下命令安装:
```
sudo yum install keepalived
```
2.配置Keepalived
Keepalived的配置文件位于/etc/keepalived/keepalived.conf中,下面是一个简单的配置文件示例:
```
! Configuration File for keepalived
vrrp_script chk_http_port {
script "/etc/keepalived/check_http_port.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100
}
track_script {
chk_http_port
}
}
```
上面的配置文件中,定义了一个名为VI_1的VRRP实例,它使用eth0网卡作为虚拟IP地址的网络接口,虚拟路由器ID为51,优先级为100,认证密码为1111,虚拟IP地址为192.168.1.100。同时,还定义了一个名为chk_http_port的VRRP脚本来检测HTTP端口的状态,并将其添加到VI_1实例的跟踪脚本列表中。
3.启动Keepalived
配置完成后,可以使用以下命令来启动Keepalived:
```
sudo systemctl start keepalived
```
此时,Keepalived就会开始工作,并自动将虚拟IP地址绑定到主服务器上。
4.测试高可用性
在主服务器上停止HTTP服务,等待几秒钟后,备用服务器就会自动将虚拟IP地址绑定到自己的网卡上,并接管HTTP服务。在此期间,客户端可以通过虚拟IP地址访问HTTP服务,而不用关心当前哪台服务器是主服务器。
以上就是使用Keepalived实现高可用性的简单步骤,当然,在实际应用中还需要根据具体情况进行定制化配置。
阅读全文