解除openstack中instance對IP的限制
最近公司的幾個關(guān)鍵業(yè)務跑在openstack中的虛擬機中,想把幾個虛擬機做成負載均衡和高可用集群。
對于負載均衡,G版本已經(jīng)集成了haproxy插件,對haproxy的配置做了一層封裝,可以很方便的通過quantum去創(chuàng)建一個負載均衡池,為相同或者不同宿主機上的虛擬機提供負載均衡的能力。
在這個模式下,haproxy是運行在宿主機上的。
遺憾的是,目前還不能通過openstack做到haproxy的高可用。
想要做高可用,只能在虛擬機中去飄VIP了
但是創(chuàng)建了虛擬機之后,在這個虛擬機實例中只能使用指定的IP。
這就導致想在虛擬機中部署高可用去飄VIP是不可行的。
可以理解,在公有云環(huán)境下,是不可能讓用戶在虛擬機中隨意去配置額外地址的。
但我們是私有云環(huán)境,這個規(guī)則對私有云環(huán)境下很是麻煩。
之前一直以為是iptables規(guī)則導致的。于是去看了一遍宿主機中的iptables規(guī)則
|
分析一下這些openstack自動生成的規(guī)則,可以看到input,forword和output鏈默認都是accept狀態(tài)。分析每條鏈對數(shù)據(jù)包的跳轉(zhuǎn)和過濾,如果在虛擬機中配置新的地址,是不會被過濾的。
經(jīng)過一番折騰,最終發(fā)現(xiàn)限制IP的原因是ebtables在起作用