天天看點

在netron provider network環境中使用metadata

雖然L3 agent在havana中可以做到多節點部署,但是和nova-network的multi-host還是有些差距,實際生産環境中還是會使用實體路由器,由實體路由器本身保證HA。這就使得我們會使用netron的provider network feature。當我們使用provider network時,發現了虛機無法通路metadata的問題,本文記錄了兩個解決辦法。

首先說下我們計算節點的構架大緻如下:

使用的2層agent是ml2(ovs+vlan),dhcp agent做了multi host部署。 provider 網絡以100.100.100.0/24 GW 為100.100.100.1為例。

在netron provider network環境中使用metadata

當我們在provider network上啟動虛機後,虛機會擷取到預設網關是100.100.100.1, 當虛機想通路169.254.169.254時, 就會發送到預設網關處,而此處的預設網關是外部路由,顯然不會對169.254.169.254作出任何反映。這就造成了虛機無法擷取metadata。

目前我所知的解決的辦法有以下兩個:

1. 在外部路由上将169.254.169.254:80端口映射到metadata HA ip:8775,這樣外部路由器就可以将請求轉發到metadata server。 但這裡有一個明顯的缺陷,我們需要手動的在外部路由器上加上這樣的映射。

2. 在dhcp.ini中啟用enable_isolated_metadata。

需要注意的是由于以下bug,我們在建立subnet的時候必須要disable gateway ip,通過設定Host Routes的方式将預設路由設定進去。

https://bugs.launchpad.net/neutron/+bug/1236783

在netron provider network環境中使用metadata
在netron provider network環境中使用metadata

當我們設定了enable_isolated_metadata後,在dhcp的ops中就會加入169.254.169.254的路由,具體的實作流程以下blog寫的非常清楚,在此不再累述。

http://techbackground.blogspot.ie/2013/06/metadata-via-dhcp-namespace.html

http://techbackground.blogspot.ie/2013/06/metadata-via-quantum-router.html

目前cirros由于以下bug,這個feature還不能work:

https://bugs.launchpad.net/cirros/+bug/1190372

繼續閱讀