在openstack 中部署keepalived 高可用集群

 

 

在openstack云环境中部署keepalved主备集群时,会发现vip无法ping通,即使在相同网络也无法ping通,直接对云主机一张网卡配置两个IP进行测试也是同样的结果,

我想的是可能是keepalived创建的vip不被neutron认可,后来查询得到openstack的port所在的宿主机上iptables 对 MAC地址和IP进行了限制。是为了防止arp欺骗,我想总不能把宿主机iptables关了吧。生产环境决不能允许这等操作。

最终找到一个不错的方法(源头是参考一个国外博客Aaron’s Blog. )
方法是用的Havana版本的一新特性 “Allowed-Address-Pairs”,简单来说,就是在每个vm关联一个openstack创建ip,这样就解决了上面说的问题了;相当适合keepalived使用场景。

首先登陆openstack的horizon创建一个端口

这里我已经创建好了

创较好是这样的状态,接下来我们要进行cli命令行操作。可是笔者这里并不能远程直接对宿主机操作。接下来就是用到我们openstack的RC文件了

请看我另一条博文。openstack RC文件的使用

用 allwed_address_pairs 参数关联所创建的ip 192.168.111.44

--allowed-address-pair的用法:

neutron port-update --allowed-address-pair ip_address=[CIDR] [port_id]

在我们的环境中给两个keeplived执行操作:

neutron port-update --allowed-address-pair ip_address=192.168.111.44 c5a456dc-94fa-4f7d-a9a7-e9933afef632
neutron port-update --allowed-address-pair ip_address=192.168.111.44 aea3e3af-5bb0-4ad7-b1a0-0463d7290bd1

然后可以查看一下端口状态

neutron port-show c5a456dc-94fa-4f7d-a9a7-e9933afef632

可以看到allowed_address_pairs 属性 已经绑定   ,两个mac地址是一样的

到这一步为止,云主机内配置上面的 vip 就已经可以使用了。

接下来我们给vip绑定浮点ip

同样登陆openstack的horizon创建浮点ip

 

然后将分配的浮点ip进行绑定,选择事先创建好的vip就可以了

这个是绑定后的状态

并没有显示绑定到哪,不用管,这样vip就可以与外网通讯啦

posted @ 2018-04-30 11:36  黑桃09  阅读(4579)  评论(2编辑  收藏  举报