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