[openstack]nova-docker現狀

來源:互聯網
上載者:User

標籤:openstack   nova   docker   

聲明:

本部落格歡迎轉寄,但請保留原作者資訊!

部落格地址:http://blog.csdn.net/halcyonbaby

內容系本人學習、研究和總結,如有雷同,實屬榮幸!

nova-docker現狀

nova-docker外掛程式h版出現,但是在i版本從nova中移出,作為孵化項目培養。
當時給出的解釋是,希望能更快的進行反覆式開發法,支援cinder和neutron。並計劃在K版本release時重新進入。

nova-docker的架構

目前的架構如下(其中docker registry已經不需要了)。

可以看出,這種使用方法,docker相當於一種新的hypervisor。
把容器當做虛擬機器來使用。

其中容器鏡像通過docker save儲存成tar包,放置在glance上管理。
建立容器時,從glance上下載容器鏡像,利用(docker load)載入並啟動容器鏡像。

支援功能

支援容器建立/刪除/虛刪除/重啟/暫停/解除暫訂/停止/開始。
支援對容器建立快照,支援基於快照恢複容器。
支援對容器設定插拔網卡。
查詢docker節點上CPU/記憶體使用量情況/查詢可用節點。
查詢docker容器。
查詢容器console輸出。
支援neutron網路/nova-network網路。
支援綁定浮動IP。

不支援共用儲存。
不支援掛卷/卸卷操作。
不支援遷移,rescue等操作。  

不支援設定安全性群組規則。(從代碼上看,留的有架構,但是目前並不支援。使用的NoopFirewallDriver。)

容器使用的是本機存放區,不能使用cinder共用儲存。

網路實現

查看容器的namespace:

[[email protected] ~]# docker ps --no-truncCONTAINER ID                                                       IMAGE                    COMMAND             CREATED             STATUS              PORTS               NAMES54ba6c67de05b8c5ddb824497eae0071f902dcdea05ce93109d9791453dfeb17   tutum/wordpress:latest   "/run.sh"           15 hours ago        Up 15 hours                             nova-ee2edd99-a64c-4701-84ad-faccd3b1a246[[email protected] ~]# ip netns list54ba6c67de05b8c5ddb824497eae0071f902dcdea05ce93109d9791453dfeb17qdhcp-78277811-dc20-47c0-8319-58894843e3d43ce4e73bcfeb64b994a5bf87c7f49553ca3583308b93878a07679a742661b0a4qdhcp-bc557a68-425e-4f24-bb6c-627500647856ee3b2cc56a0ccae387371cf8eb6ad7f43712cf1cbdc66bf46af77f3c929be34aqrouter-818c4149-355d-4409-8dda-f412da898ff0
查看namespace中網路:
[[email protected] ~]# ip netns exec 54ba6c67de05b8c5ddb824497eae0071f902dcdea05ce93109d9791453dfeb17 ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever28: nse54c9783-26: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether fa:16:3e:d8:9b:e8 brd ff:ff:ff:ff:ff:ff    inet 10.0.0.2/24 brd 10.0.0.255 scope global nse54c9783-26       valid_lft forever preferred_lft forever    inet6 fe80::f816:3eff:fed8:9be8/64 scope link       valid_lft forever preferred_lft forever

查看裝置28的關聯veth pair:

[[email protected] ~]# ip netns exec 54ba6c67de05b8c5ddb824497eae0071f902dcdea05ce93109d9791453dfeb17  ethtool -S nse54c9783-26NIC statistics:     peer_ifindex: 29[[email protected] ~]# ip addr...29: tape54c9783-26: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP qlen 1000    link/ether 82:31:7f:dc:e3:8f brd ff:ff:ff:ff:ff:ff    inet6 fe80::8031:7fff:fedc:e38f/64 scope link       valid_lft forever preferred_lft forever...
查看裝置29關聯裝置:(裝置掛在OVS橋接器的br-int上)
[[email protected] ~]# ovs-vsctl show2368aead-599b-4cd8-b2a1-dd01041e5635    Bridge br-ex        Port br-ex            Interface br-ex                type: internal        Port "qg-83cd012e-53"            Interface "qg-83cd012e-53"                type: internal    Bridge br-int        fail_mode: secure        Port "tapbf138559-94"            tag: 3            Interface "tapbf138559-94"        Port "tape54c9783-26"            tag: 1            Interface "tape54c9783-26"        Port "tap7687fcec-f0"            tag: 2            Interface "tap7687fcec-f0"        Port br-int            Interface br-int                type: internal        Port "qr-9712c2ca-1f"            tag: 1            Interface "qr-9712c2ca-1f"                type: internal        Port patch-tun            Interface patch-tun                type: patch                options: {peer=patch-int}        Port "tap5f8409aa-f9"            tag: 3            Interface "tap5f8409aa-f9"                type: internal        Port "tapeb9206a8-85"            tag: 1            Interface "tapeb9206a8-85"                type: internal    Bridge br-tun        Port patch-int            Interface patch-int                type: patch                options: {peer=patch-tun}        Port br-tun            Interface br-tun                type: internal    ovs_version: "2.0.0"

備忘:因為是個單機環境,沒有給br-int配置具體的物理網卡。  
容器DHCP服務與綁定Floating IP: 
 //10.0.0.0/24網段的DHCP服務[[email protected] ~]# ip netns exec qdhcp-78277811-dc20-47c0-8319-58894843e3d4 ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever27: tapeb9206a8-85: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN    link/ether fa:16:3e:6e:1b:13 brd ff:ff:ff:ff:ff:ff    inet 10.0.0.3/24 brd 10.0.0.255 scope global tapeb9206a8-85       valid_lft forever preferred_lft forever    inet6 fe80::f816:3eff:fe6e:1b13/64 scope link       valid_lft forever preferred_lft forever//可以看出通過router將內部10.0.0.0/24的網路與外部172.24.4.0/24的兩個IP打通[[email protected] ~]# ip netns exec qrouter-818c4149-355d-4409-8dda-f412da898ff0  ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever19: qr-9712c2ca-1f: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN    link/ether fa:16:3e:50:18:19 brd ff:ff:ff:ff:ff:ff    inet 10.0.0.1/24 brd 10.0.0.255 scope global qr-9712c2ca-1f       valid_lft forever preferred_lft forever    inet6 fe80::f816:3eff:fe50:1819/64 scope link       valid_lft forever preferred_lft forever20: qg-83cd012e-53: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN    link/ether fa:16:3e:0d:4e:c2 brd ff:ff:ff:ff:ff:ff    inet 172.24.4.2/24 brd 172.24.4.255 scope global qg-83cd012e-53       valid_lft forever preferred_lft forever    inet 172.24.4.6/32 brd 172.24.4.6 scope global qg-83cd012e-53       valid_lft forever preferred_lft forever    inet6 fe80::f816:3eff:fe0d:4ec2/64 scope link       valid_lft forever preferred_lft forever//IP綁定的NAT規則[[email protected] ~]# ip netns exec qrouter-818c4149-355d-4409-8dda-f412da898ff0  iptables-save-A neutron-l3-agent-PREROUTING -d 172.24.4.6/32 -j DNAT --to-destination 10.0.0.2-A neutron-l3-agent-float-snat -s 10.0.0.2/32 -j SNAT --to-source 172.24.4.6

參考:  
1. http://www.opencontrail.org/openstack-docker-opencontrail/   
2. http://technodrone.blogspot.com/2014/10/nova-docker-on-juno.html 


[openstack]nova-docker現狀

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.