keepalived配置VIP(虚拟IP)

首先为了测试机器,准备两台服务器:
host1 172.28.23.73

host2 172.28.23.96

虚拟ip 172.28.23.100
第一步:在线安装keepalived中间件
sudo yum install -y keepalived

有时候需要先卸载再安装

sudo yum -y remove keepalived
第二步:配置 keepalived

(1)host1 上 keepalived 配置

$ vim /etc/keepalived/keepalived.conf
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 {
        172.28.23.100
    }
}

简单的解释下参数:

eth0是网卡,有些是eth33,可以通过ifconfig命令进行查看;
priority 是用来标记主从服务器的,priority 101表示主服务器,priority 100表示从服务器;
virtual_ipaddress表示虚拟ip的地址

(2)host2 上 keepalived 配置

$ vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.28.23.100
    }
}

这两个配置文件差别就在priority 101与priority 100,分别表示主从关系。

第三步: 启动 keepalived 服务
systemctl start keepalived.service
systemctl enable keepalived.service
第四步:查看IP地址信息

host1上 IP 地址信息

ip addr show eth0

得到输出:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:ab:d2:19 brd ff:ff:ff:ff:ff:ff
    inet 172.28.23.73/24 brd 172.28.23.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 172.28.23.100/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2001:fecc:0:623::9/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:feab:d219/64 scope link 
       valid_lft forever preferred_lft forever

其中可以看到 172.28.23.100/32 scope global eth0,说明现在host1是作为虚拟IP的master来运行的。

host2 上 IP 地址信息

$ ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether fa:16:3e:95:87:6b brd ff:ff:ff:ff:ff:ff
    inet 172.28.23.96/24 brd 172.28.23.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2001:fecc:0:623::a/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe95:876b/64 scope link 
       valid_lft forever preferred_lft forever

此时host2上ip地址信息中不包含虚拟IP “172.28.23.100” 信息。

第五步:验证 IP 地址 Failover

现在手动停止host1上的 keepalived 服务

systemctl start keepalived.service

重新查询host1的ip信息

ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:ab:d2:19 brd ff:ff:ff:ff:ff:ff
    inet 172.28.23.73/24 brd 172.28.23.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2001:fecc:0:623::9/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:feab:d219/64 scope link 
       valid_lft forever preferred_lft forever

此时host1上ip地址信息中不包含虚拟IP “172.28.23.100” 信息。

接着在host2上面先停止在开启keepalived服务

systemctl stop keepalived.service
systemctl start keepalived.service

再次查询host2的IP的信息

ip addr show eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether fa:16:3e:95:87:6b brd ff:ff:ff:ff:ff:ff
    inet 172.28.23.96/24 brd 172.28.23.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 172.28.23.100/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2001:fecc:0:623::a/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe95:876b/64 scope link 
       valid_lft forever preferred_lft forever

现在可以看到 host2 上 ip 地址信息中已经包含虚拟IP “172.28.23.100” 信息了。
此时如果再把 host1 上的 keepalived 服务启动,会发现虚拟IP “172.28.23.100” 又重新绑定到 host1 上了。

如何添加ipv6地址类型为虚拟IP(vip)

思路是一样的,在确认好服务器支撑ipv6的情况下,将vip换成ipv6格式的地址就行,若是服务器不支持ipv6,则可以根据教程来添加ipv6支持!

如将172.28.23.100改成2001:fecc:0:622::a/64

首先:重新修改houst1上的keepalived.conf文件
vim /etc/keepalived/keepalived.conf
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 {
        2001:fecc:0:622::a/64 #ipv6地址
    }
}

重启keepalived服务

systemctl restart keepalived.service

再次查看IP信息

ip addr show eth0

得到以下输出:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:ab:d2:19 brd ff:ff:ff:ff:ff:ff
    inet 172.28.23.73/24 brd 172.28.23.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2001:fecc:0:622::a/64 scope global nodad  #虚拟的ipv6地址
       valid_lft forever preferred_lft forever
    inet6 2001:fecc:0:623::9/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:feab:d219/64 scope link 
       valid_lft forever preferred_lft forever
  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用nginx和keepalived的负载均衡集群中,为了提高集群的高可用性,通常会使用虚拟IPVIP)来实现故障转移。以下是在CentOS 7上配置nginx和keepalived虚拟IP的步骤。 1. 安装nginx和keepalived 在CentOS 7上安装nginx和keepalived: ``` sudo yum install nginx sudo yum install keepalived ``` 2. 配置nginx 在nginx配置文件中添加以下内容: ``` upstream backend { server 192.168.0.1; server 192.168.0.2; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; } } ``` 此配置中,将请求转发到名为“backend”的上游服务器组,其中包含两个IP地址(192.168.0.1和192.168.0.2)。您可以根据需要添加或删除服务器。 3. 配置keepalivedkeepalived配置文件中添加以下内容: ``` vrrp_script check_nginx { script "/usr/bin/pgrep nginx" interval 2 weight 2 } vrrp_instance VI_1 { interface eth0 state MASTER virtual_router_id 51 priority 101 authentication { auth_type PASS auth_pass mypassword } virtual_ipaddress { 192.168.0.100/24 dev eth0 } track_script { check_nginx } } ``` 此配置中,使用vrrp_script定义了一个名为“check_nginx”的脚本,以检查nginx进程是否正在运行。使用vrrp_instance定义了一个名为“VI_1”的VRRP实例,其中包含了虚拟路由器ID、节点优先级、虚拟IP地址和认证信息。使用track_script配置keepalived监控nginx进程的运行状态。 4. 启动服务 在两个节点上启动nginx和keepalived服务: ``` sudo systemctl start nginx sudo systemctl enable nginx sudo systemctl start keepalived sudo systemctl enable keepalived ``` 5. 测试虚拟IP 在浏览器中输入虚拟IP地址(例如http://192.168.0.100),应该能够访问nginx服务器集群。此时,如果一个nginx服务器宕机,keepalived将自动将虚拟IP地址转移到另一个nginx服务器上,以确保集群的高可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值