成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Docker 1.9新特性:跨主機(jī)網(wǎng)絡(luò)為最大亮點(diǎn)

云計(jì)算
十一月四號(hào),Docker對(duì)1.9進(jìn)行了發(fā)布,新的發(fā)行版中添加了很多有趣的特性,下面本文就對(duì)新的發(fā)行版中的新特性做一個(gè)簡(jiǎn)單的介紹。

【編者的話(huà)】11月4日,Docker 1.9 正式發(fā)布。其中Docker Swarm 和多跨主機(jī)網(wǎng)絡(luò)正式可在生產(chǎn)環(huán)境使用,Docker Engine 提供了全新的存儲(chǔ)卷管理系統(tǒng),Docker Compose 對(duì)更多環(huán)境提供了更好的支持。所有的這些都為大規(guī)模部署生產(chǎn)環(huán)境下的分布式應(yīng)用打下了堅(jiān)實(shí)的基礎(chǔ)。本文詳細(xì)分析了Docker 1.9的種種新特性。

新特性簡(jiǎn)介

十一月四號(hào),Docker對(duì)1.9進(jìn)行了發(fā)布,新的發(fā)行版中添加了很多有趣的特性,下面我就對(duì)新的發(fā)行版中的新特性做一個(gè)簡(jiǎn)單的介紹。

  1. 跨主機(jī)網(wǎng)絡(luò):新的網(wǎng)絡(luò)設(shè)備可以支持用戶(hù)創(chuàng)建基于多個(gè)主機(jī)的虛擬網(wǎng)絡(luò),使容器間可以跨網(wǎng)絡(luò)通信。
  2. 持久化存儲(chǔ):Docker 1.9 包含一個(gè)重新設(shè)計(jì)的完整存儲(chǔ)卷管理系統(tǒng),這使得用戶(hù)可以更加容易的從前端來(lái)管理這些數(shù)據(jù)卷。
  3. Docker Swarm 1.0:修復(fù)bug并對(duì)其進(jìn)行大量?jī)?yōu)化。Docker公司在1000個(gè)節(jié)點(diǎn)上測(cè)試了30000個(gè)容器,swarm可以如絲般潤(rùn)滑的運(yùn)行。
  4. Docker Engine 1.9:新的Docker Engine中加入了如下新特性:Dockerfile 的構(gòu)建時(shí)參數(shù)、并行鏡像 pull、自定義 stop 信號(hào)、AWS CloudWatch logging driver和磁盤(pán) I/O metrics。
  5. Docker Compose 1.5:Docker Compose 是一個(gè)定義并運(yùn)行多容器應(yīng)用的工具,它有如下更新:支持 Windows、Compose 文件中的環(huán)境變量、對(duì)多環(huán)境更好的支持、和 networking 集成和Compose file 校驗(yàn)。
  6. Docker Toolbox:這個(gè)工具可以使Mac和Windows支持這些新特性。
  7. Docker Registry 2.2:主要做了以下更新:支持 Google Cloud Storage、只讀模式、支持可配置主機(jī)名、基于文件的存在配置、可配置的 HTTP 健康檢查和可配置的 HTTP 響應(yīng) headers。詳細(xì)的更新說(shuō)明可以參照《Docker 1.9 發(fā)布:Swarm 和跨主機(jī)網(wǎng)絡(luò)進(jìn)入 production-ready 階段》和Announcing Docker 1.9: Production-ready Swarm and Multi-host Networking。

新特性原理解讀

下面就對(duì)我比較感興趣的幾點(diǎn),做一下詳細(xì)的介紹。

首先,此次發(fā)行版最引人注目的就是Docker的跨主機(jī)網(wǎng)絡(luò)了。早在六月的DockerCon大會(huì)上Docker公司就宣布已經(jīng)開(kāi)始進(jìn)行對(duì) Docker Network的試驗(yàn)性工作。在1.9中docker network命令脫離了實(shí)驗(yàn)分支,正式進(jìn)入了發(fā)行版中。有了新的Networking我們可以創(chuàng)建虛擬網(wǎng)絡(luò),然后將container加入到虛擬網(wǎng)絡(luò)中,以獲得最適合所部署應(yīng)用的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。

和傳統(tǒng)的links模式相比,新的Networking有如下三點(diǎn)改進(jìn):

  1. 可以跨越不同的物理和虛擬主機(jī),連接不同的容器。
  2. 用戶(hù)可以輕松的停止,開(kāi)啟和重啟容器,而不用擔(dān)心破壞容器之間的相互連接。
  3. 用戶(hù)可以以任何順序創(chuàng)建容器。

在清楚了新的Networking的特性之后,我們來(lái)看一下這部分的實(shí)現(xiàn)原理。

Networking的跨主機(jī)部分使用的時(shí)ovs(Open vSwitch)和VXLAN隧道進(jìn)行實(shí)現(xiàn)。關(guān)于容器之間的隔離,則使用了iptables。

要清楚Networking的執(zhí)行流,首先要清楚如下三個(gè)概念:

Sandbox:一個(gè)Sandbox包含了一個(gè)容器的網(wǎng)絡(luò)棧。其中包括容器的管理接口,路由表和DNS設(shè)置。主要是通過(guò)namespace和cgroup進(jìn)行實(shí)現(xiàn)。一個(gè)Sandbox可以包括多個(gè)Endpoint。

Endpoint:一個(gè)Endpoint通過(guò)加入一個(gè)Sandbox來(lái)加入一個(gè)Network。Endpoint就相當(dāng)于一個(gè)網(wǎng)卡。

Network:一個(gè)Network是一組直接互聯(lián)的Endpoint組成的。它相當(dāng)于一個(gè)二級(jí)網(wǎng)絡(luò)。

清楚了以上三個(gè)基本概念之后我們來(lái)看看Network的執(zhí)行流。

指定network的驅(qū)動(dòng)和各項(xiàng)相關(guān)參數(shù)之后調(diào)用 libnetwork.New()創(chuàng)建一個(gè)NetWorkController實(shí)例。這個(gè)實(shí)例提供了各種接口,Docker可以通過(guò)它創(chuàng)建新的NetWork和Sandbox等。

通過(guò)controller.NewNetwork(networkType, "network1")來(lái)創(chuàng)建指定類(lèi)型和名稱(chēng)的Network。

通過(guò)network.CreateEndpoint("Endpoint1")來(lái)創(chuàng)建一個(gè)Endpoint。在這個(gè)函數(shù)中Docker為這個(gè) Endpoint分配了ip和接口,而對(duì)應(yīng)的network實(shí)例中的各項(xiàng)配置信息則會(huì)被使用到Endpoint中,其中包括iptables的配置規(guī)則和端口信息等。

通過(guò)調(diào)用controller.NewSandbox()來(lái)創(chuàng)建Sandbox。這個(gè)函數(shù)主要調(diào)用了namespace和cgroup等來(lái)創(chuàng)建一個(gè)相對(duì)獨(dú)立的沙盒空間。

調(diào)用ep.Join(sbx)將Endpoint加入指定的Sandbox中,則這個(gè)Sandbox也會(huì)加入創(chuàng)建Endpoint對(duì)應(yīng)的Network中。

總的來(lái)說(shuō),Endpoint是由Network創(chuàng)建的,隸屬于這個(gè)創(chuàng)建它的Network,當(dāng)Endpoint加入Sandbox的時(shí)候,就相當(dāng)于這個(gè)Sandbox加入到了這個(gè)Network中來(lái)。下面的圖可以簡(jiǎn)要說(shuō)明三者的關(guān)系。

然后是關(guān)于Volumes,即持久化存儲(chǔ)這一塊,Docker也做了比較大的改動(dòng)。首先最明顯的就是--volume不再僅僅作為docker run的一個(gè)flag,也作為一個(gè)單獨(dú)的子命令出現(xiàn)在Docker中。底層也為volume添加了諸如ls、create、inspect和rm等 volume子命令的api。新的volume子命令可以允許用戶(hù)先創(chuàng)建volume,然后在啟動(dòng)的container的時(shí)候進(jìn)行掛載,此舉也更加方便了 volume的管理。

一個(gè)簡(jiǎn)單的例子方便大家快速上手新特性:

  1. $ docker volume create --name hello 
  2. hello 
  3. $ docker run -d -v hello:/world busybox ls /world 

通過(guò)這個(gè)例子可以創(chuàng)建一個(gè)名為hello的volume,然后將其掛載到容器內(nèi)的/world目錄下。

在Docker Engine 1.9中也有一些有趣實(shí)用的特性。

前面提到的磁盤(pán) I/O metrics就是一個(gè)很實(shí)用的特性。這個(gè)新特性通過(guò)抓取系統(tǒng)內(nèi)blkio IoServiceBytesRecursive中的信息對(duì)磁盤(pán)的I/O進(jìn)行計(jì)算,并通過(guò)docker state命令打印出來(lái)。所以現(xiàn)在通過(guò)docker state獲得的容器信息就變成了如下的形式:

 

并行鏡像 pull也是一個(gè)有趣的新特性。現(xiàn)在可以做到如果用戶(hù)pull的鏡像正在被其他進(jìn)程 pull,進(jìn)度條會(huì)顯示這個(gè)信息并正確退出。上一個(gè)版本的Docker Engine在處理用戶(hù)pull的鏡像正在被其他進(jìn)程 pull這個(gè)問(wèn)題中,用的是管道,這樣的話(huà)就很容易出現(xiàn)管道堵塞,就會(huì)卡死在“Layer already being pulled by another client”。

新的版本中使用了名為progressreader的工具包,如果遇到上述問(wèn)題的話(huà),Docker Engine可以調(diào)用這個(gè)工具包,通過(guò)共享的Broadcaster讀取其他進(jìn)程pull用戶(hù)所指定鏡像的進(jìn)度,顯示這個(gè)進(jìn)度,并做出正確的返回。

最后來(lái)講講Docker Engine 1.9中的自定義 stop 信號(hào)。這個(gè)特性可以在Dockerfile 指令中新增 STOPSIGNAL,通過(guò)使用這個(gè)指令Docker允許用戶(hù)自定義應(yīng)用在收到docker stop所收到的信號(hào)。這個(gè)新特性主要通過(guò)重寫(xiě)Docker中signal庫(kù)內(nèi)的stopsignal來(lái)支持自定義信號(hào)的傳遞,在上層調(diào)用時(shí)則將用戶(hù)自定義的信號(hào)傳入底層函數(shù)即可。

Q&A

Q:請(qǐng)問(wèn)ovs和vxlan在吞吐和延遲方面有性能損失嗎,有無(wú)測(cè)試指標(biāo)?

A:損失肯定是有的,但是具體的指標(biāo),Docker方面沒(méi)有給出測(cè)試結(jié)果。

Q:本地化創(chuàng)建images咋樣了,ovs是本地化嗎,物理網(wǎng)卡需要多少帶寬?

A:這個(gè)本次更新沒(méi)有提到。ovs的配置會(huì)本地化,具體物理網(wǎng)卡多大Docker官方?jīng)]有給出說(shuō)明。

Q:1.9之后容器的網(wǎng)絡(luò)棧是在容器啟動(dòng)之前就配置好了還是啟動(dòng)之后,之前版本的Docker,網(wǎng)絡(luò)初始化是在容器啟動(dòng)前還是啟動(dòng)后?

A:網(wǎng)絡(luò)棧啟動(dòng)之前就會(huì)配置,啟動(dòng)時(shí)候進(jìn)行加載。之前的Docker也是這樣。

Q:docker daemon為跨主機(jī)網(wǎng)絡(luò)增加了哪些配置項(xiàng),跨主機(jī)網(wǎng)絡(luò)的信息存放在哪里?

A:這個(gè)問(wèn)題太具體了,需要仔細(xì)看看代碼才知道,我只是大概看了一下,畢竟網(wǎng)絡(luò)這部分更新太多了。

Q:請(qǐng)問(wèn)從1.9開(kāi)始Docker就支持ovs了么,ovs還是需要自行安裝吧?

A:1.9開(kāi)始使用ovs實(shí)現(xiàn)networking部分,底層還是調(diào)用的ovs。ovs需要自己安裝。

Q:也就是說(shuō)從1.9以后ovs就是直接通過(guò)隧道使用,而不是通過(guò)route來(lái)實(shí)現(xiàn),對(duì)么?

A:可以這樣理解。

Q:請(qǐng)問(wèn)volume特性現(xiàn)在有類(lèi)似kubernetes persist volume的功能嗎,對(duì)接第三方存儲(chǔ)?

A:現(xiàn)在的volume還是對(duì)接本地文件夾的,擁有了子命令,更多的是方便使用和管理。

Q:1.9版本特性,是不是更容易建立固定IP類(lèi)虛擬機(jī)的容器?

是的。

Q:跨主機(jī)的容器網(wǎng)絡(luò)是由Docker daemon來(lái)維護(hù)的嗎?

A:是通過(guò)daemon維護(hù)的。

Q:Docker1.9的CRIU方案相對(duì)前幾個(gè)版本有哪些改進(jìn),新版本使用熱遷移有哪些坑?

A:Docker還是不能熱遷移,runC才可以。

Q:跨主機(jī)網(wǎng)絡(luò)功能是全部在docker engine實(shí)現(xiàn)的么,還是需要依賴(lài)安裝好的ovs相關(guān)環(huán)境?

A:底層還是調(diào)用ovs。

Q:如果容器重啟或重新生成對(duì)已經(jīng)構(gòu)建的虛擬網(wǎng)絡(luò)有影響嗎?

A:沒(méi)有影響。

Q:D能不能給個(gè)1.9網(wǎng)絡(luò)新特性的實(shí)際使用的例子?

A:我上面給的那個(gè)執(zhí)行流大概就和實(shí)際使用的例子類(lèi)似,就是創(chuàng)建Network,然后創(chuàng)建ep,創(chuàng)建沙盒,將ep裝入沙盒中。實(shí)際使用的例子可以參考Docker官方文檔。

Q:多個(gè)容器共享一個(gè)存儲(chǔ)如何解決同時(shí)寫(xiě)的問(wèn)題?

A:其實(shí)本質(zhì)上Docker的數(shù)據(jù)卷就是一個(gè)bindmount,其工作原理和Linux主機(jī)上的共享卷原理一致。

===========================

以上內(nèi)容根據(jù)2015年11月5日晚微信群分享內(nèi)容整理。分享人高相林,浙江大學(xué)SEL實(shí)驗(yàn)室碩士研究生,目前在云平臺(tái)團(tuán)隊(duì)從事科研和開(kāi)發(fā)工作。浙大團(tuán)隊(duì)對(duì)PaaS、Docker、大數(shù)據(jù)和主流開(kāi)源云計(jì)算技術(shù)有深入的研究和二次開(kāi)發(fā)經(jīng)驗(yàn),團(tuán)隊(duì)現(xiàn)聯(lián)合社區(qū)將部分技術(shù)文章貢獻(xiàn)出來(lái),希望能對(duì)讀者有所幫助。 DockOne每周都會(huì)組織定向的技術(shù)分享,歡迎感興趣的同學(xué)加微信:liyingjiesx,進(jìn)群參與,您有想聽(tīng)的話(huà)題可以給我們留言。

原文鏈接:http://dockone.io/article/799

責(zé)任編輯:Ophira 來(lái)源: dockone
相關(guān)推薦

2009-12-18 13:43:07

Ruby 1.9版本

2015-04-23 13:49:05

Docker 1.6特性解析

2015-05-28 10:32:00

iOS 9蘋(píng)果WWDC

2014-11-11 15:25:00

Dockerambassador云計(jì)算

2017-03-28 10:20:24

Docker通信分析

2022-02-11 21:01:18

GoNetip網(wǎng)絡(luò)庫(kù)

2009-07-09 10:28:19

線程池JDK5

2025-03-05 11:00:00

JavaScript跨域前端

2022-07-20 15:19:17

容器Docker

2023-09-15 10:15:43

Docker網(wǎng)絡(luò)

2023-12-02 08:55:18

Paru 2.0

2025-05-15 14:39:17

AI模型數(shù)據(jù)

2009-06-03 16:10:34

OpenSolaris

2018-07-20 14:50:52

主板BIOS拷機(jī)

2015-01-08 10:29:59

Shipyardweb管理集中化

2024-09-11 09:30:58

IDEA工具編程

2014-07-15 14:48:26

Java8

2020-11-23 09:50:44

Chrome前端Web

2021-02-22 11:51:15

Java開(kāi)發(fā)代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美日韩一区不卡 | 国产精品久久国产精品99 gif | www.888www看片 | 好姑娘高清在线观看电影 | 久久久久久久综合 | 欧美日韩中文在线 | 日韩a v在线免费观看 | 免费精品在线视频 | 精品欧美一区二区三区久久久 | 免费看黄色国产 | 毛片一级电影 | 天天艹日日干 | 午夜在线精品偷拍 | 精品无码久久久久国产 | 国产1区| 久久综合影院 | 欧美综合一区二区三区 | www在线视频 | 亚洲激情一区二区 | 国产乱码高清区二区三区在线 | 亚洲精品国产电影 | 色视频成人在线观看免 | 亚洲一区二区黄 | 成人亚洲精品久久久久软件 | 精品自拍视频在线观看 | 国产激情一区二区三区 | 北条麻妃av一区二区三区 | 九九99九九精彩46 | 亚洲一区二区久久 | 一区视频在线免费观看 | 亚洲网站免费看 | 色综合天天网 | 国产精品久久久久无码av | av网站免费观看 | av看看 | 99re国产视频 | 午夜久久久久久久久久一区二区 | 日本在线中文 | 中文字幕视频在线免费 | 99精品久久99久久久久 | 男女爱爱福利视频 |