在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就可以與外網通訊啦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM