OpenStack neutron 環境雲主機使用keepalived vip + 給vip綁定浮動IP 步驟及注意事項


在openstack環境創建的多台雲主機配置keepalived作主備,默認情況下無法生效,直接對雲主機一張網卡配置兩個IP進行測試也是同樣結果,因為:

技術分享

可以看到,port所在的宿主機上iptables 對 MAC地址和IP進行了限制。所以需要如下操作:

pre.   確認雲主機網卡port_id 

nova interface-list [vm_id]

1.  確認 ml2 配置中 

arp_responder = False

 或 未配置(因為默認為false);

技術分享

2.  對需要配置vip的port,可以直接 disable 安全組 (不推薦):

neutron port-update --no-security-groups --port-security-enabled=False [port_id]

    eg.   

 neutron port-update --no-security-groups --port-security-enabled=False aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa

     也可以使用 allowed-address-pair功能 (推薦) :  

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

,如  :

    eg.   

neutron port-update --allowed-address-pair ip_address=10.1.100.100 aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa

技術分享

 neutron port-update --allowed-address-pair ip_address=10.1.100.100/31 aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa

技術分享

到這一步為止,雲主機內配置上面的 vip 就已經可以使用了。

 

3.  為了避免后續創建的雲資產占用vip ,創建閑置的port,占用掉vip地址: 

neutron port-create --fixed-ip ip_address=[IP_ADDR] [network_id]
neutron port-create --fixed-ip ip_address=10.1.100.100 bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb

此時這個port 只是一個DB里的一個記錄,不會在宿主機上創建tap設備或增加iptables chain,不用擔心額外的資源損耗。它的用途僅僅是占用IP地址以免被其它資源使用而已。

如下圖,dhcp不會再分配 10.1.100.100 這個ip

技術分享

 

接下來開始將浮動IP綁定給vip,平時我們在dashboard處是給雲主機綁定浮動IP,常用的CLI /api 是  

nova  floating-ip-associate <server>  <address>  

,可這樣浮動IP綁定的是雲主機網卡原始IP (10.1.100.7),不是vip (10.1.100.100)

技術分享

技術分享

,所以我們得使用neutron 的相關接口。

4.   創建浮動IP 

neutron floatingip-create [floating_net_id]
neutron floatingip-create cccccccc-cccc-cccc-cccc-cccccccccccc

5.   綁定

neutron floatingip-associate [floatingip_id] [port_id]

先將剛才通過nova CLI 綁定的解綁 

技術分享

開始綁定

neutron floatingip-associate cccccccc-cccc-cccc-cccc-cccccccccccc aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa

再去l3 節點的net ns里可以看到

技術分享

已經綁定的是 vip (10.1.100.100) 了


免責聲明!

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



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