国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

代碼篇 | Docker1.12+Swarm構(gòu)建動(dòng)態(tài)微服務(wù)應(yīng)用

JellyBool / 3139人閱讀

摘要:首先啟動(dòng)該命令。這項(xiàng)機(jī)制在實(shí)際生產(chǎn)當(dāng)中無(wú)疑非常重要。那么下面我們回顧一下之前了解到的信息我們創(chuàng)建了一款小型動(dòng)態(tài)微服務(wù)應(yīng)用,完全由構(gòu)成。在多數(shù)情況下,這能夠?yàn)閼?yīng)用后端服務(wù)建立起獨(dú)立的代理機(jī)制。

這次數(shù)人云與大家分享的文章里,主要介紹了Docker Swarm如何憑借革新對(duì)整體場(chǎng)景進(jìn)一步加以簡(jiǎn)化。事實(shí)上,如今我們已經(jīng)可以輕松且直觀地構(gòu)建起一套Docker Swarm集群,快來(lái)一起體驗(yàn)一下吧:)

下面先來(lái)看看各項(xiàng)具體的更新內(nèi)容:

我們?cè)谥疤岬竭^一個(gè)示例,即一款由前端與多項(xiàng)后端服務(wù)共同構(gòu)成的微服務(wù)應(yīng)用。其中前端為Traefik HTTP代理,負(fù)責(zé)將各項(xiàng)請(qǐng)求路由至后端服務(wù)。而后端則非常簡(jiǎn)單,是一套基于Go的HTTP Web服務(wù)器,負(fù)責(zé)返回其運(yùn)行所在的容器ID。

新的Docker Swarm不再需要為應(yīng)用容器設(shè)置獨(dú)立的HTTP代理。如上圖所示的原有架構(gòu)現(xiàn)在被精簡(jiǎn)為下圖所示的形式:

移動(dòng)部件更少了——贊!

另外,我們還為后端服務(wù)內(nèi)置了負(fù)載均衡機(jī)制。我們甚至能夠立足于集群內(nèi)的任一節(jié)點(diǎn)訪問這些服務(wù)。Docker Swarm還集成有一種內(nèi)置網(wǎng)狀路由機(jī)制,用于將各請(qǐng)求路由至適合的后端容器當(dāng)中。

面對(duì)這些新功能,有些朋友可能認(rèn)為Docker Swarm集群的設(shè)置過程會(huì)比原本更為復(fù)雜。事實(shí)上,整個(gè)流程反而更加簡(jiǎn)單。

仍然半信半疑?下面一起來(lái)看。

沒錯(cuò),這次我們?nèi)匀皇褂肦aspberry Pi集群。我使用的是Docker 1.12內(nèi)部版本,并將其安裝在Raspberry Pi上。當(dāng)Docker 1.12推出正式版后,我們會(huì)對(duì)內(nèi)容做出針對(duì)性更新。

下面看看當(dāng)前配置:

root@pi6 $ docker version
Client:
Version:      1.12.0-rc1
API version:  1.24
Go version:   go1.6.2
Git commit:   1f136c1-unsupported
Built:        Wed Jun 15 15:35:51 2016
OS/Arch:      linux/arm

Server:
Version:      1.12.0-rc1
API version:  1.24
Go version:   go1.6.2
Git commit:   1f136c1-unsupported
Built:        Wed Jun 15 15:35:51 2016
OS/Arch:      linux/arm

很好,Docker 1.12 RC1已經(jīng)準(zhǔn)備就緒。下面啟動(dòng)各項(xiàng)必要服務(wù)。

首先看看我們能否在Docker CLI中找到隱藏的各項(xiàng)新功能。

root@pi6 $ docker
Usage: docker [OPTIONS] COMMAND [arg...]
      docker [ --help | -v | --version ]

A self-sufficient runtime for containers.
   ...
   service   Manage Docker services
   ...
   stats     Display a live stream of container(s) resource usage statistics
   ...
   swarm     Manage Docker Swarm
   ...
   update    Update configuration of one or more containers

Run "docker COMMAND --help" for more information on a command.

我直接去掉了其中與上代版本完全一致的部分,而只留了不同之處。

現(xiàn)在我們可以使用docker swarm命令了。

查詢其具體作用:

root@pi6 $ docker swarm

Usage:  docker swarm COMMAND

Manage Docker Swarm

Options:
      --help   Print usage

Commands:
  init        Initialize a Swarm.
  join        Join a Swarm as a node and/or manager.
  update      update the Swarm.
  leave       Leave a Swarm.
  inspect     Inspect the Swarm

  Run "docker swarm COMMAND --help" for more information on a command.

就是說(shuō)其用于“初始化一套Swarm”。看起來(lái)正是我們需要的。首先啟動(dòng)該命令。

root@pi6 $ docker swarm init
Swarm initialized: current node (1njlvzi9rk2syv3xojw217o0g) is now a manager.

現(xiàn)在我們的Swarm管理節(jié)點(diǎn)已經(jīng)開始運(yùn)行,接下來(lái)為集群添加更多節(jié)點(diǎn)。

前往集群中的另一節(jié)點(diǎn)并執(zhí)行:

root@pi1 $ docker swarm join pi6:2377
This node joined a Swarm as a worker.

使用上述命令,我們?cè)趧倓倓?chuàng)建的初始Swarm集群中聲明了應(yīng)當(dāng)加入該Swarm管理節(jié)點(diǎn)的各個(gè)新節(jié)點(diǎn)。Docker Swarm會(huì)在后臺(tái)執(zhí)行相關(guān)操作。

舉例來(lái)說(shuō),其會(huì)為不同集群節(jié)點(diǎn)設(shè)置經(jīng)過加密的彼此通信通道。我們不再需要自行管理TLS證書。

每位曾經(jīng)設(shè)置過Docker Swarm集群的朋友,都會(huì)意識(shí)到新的流程有多么簡(jiǎn)單。
不過到這兒還沒有結(jié)束。

Swarm管理節(jié)點(diǎn)中的一條“docker info”帶來(lái)了一些有趣的提示。我仍然刪去其中不必要的部分:

root@pi6 $ docker info
...
Swarm: active
NodeID: 1njlvzi9rk2syv3xojw217o0g
IsManager: Yes
Managers: 1
Nodes: 2
CACertHash: sha256:de4e2bff3b63700aad01df97bbe0397f131aabed5fabb7732283f044472323fc
...
Kernel Version: 4.4.10-hypriotos-v7+
Operating System: Raspbian GNU/Linux 8 (jessie)
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 925.4 MiB
Name: pi6
...

如大家所見,我們現(xiàn)在已經(jīng)在“docker info”輸出結(jié)果中有了新的“Swarm”部分,其告訴我們當(dāng)前節(jié)點(diǎn)屬于一套Swarm管理節(jié)點(diǎn),且該集群由兩個(gè)集群節(jié)點(diǎn)構(gòu)成。

在第二個(gè)節(jié)點(diǎn)上,其輸出結(jié)果與管理節(jié)點(diǎn)稍有不同:

Swarm: active
NodeID: 3fmwt4taurwxczr2icboojz8g
IsManager: No

到這里,我們已經(jīng)擁有了一套有趣但仍然空空如也的Swarm集群。

我們還需要了解Docker 1.12中的service這項(xiàng)全新抽象定義。大家可能在前面的輸出結(jié)果中注意到了docker service命令。所謂docker service,是指運(yùn)行在容器當(dāng)中且負(fù)責(zé)為外部世界提供運(yùn)行在Swarm集群內(nèi)的“service”的軟件片段。

這樣的一項(xiàng)服務(wù)可以由單一或者多套容器構(gòu)成。在后一種情況下,我們可以確保服務(wù)擁有高可用性及/或負(fù)載均衡能力。

下面使用之前創(chuàng)建的“whoami”鏡像建立這樣一項(xiàng)服務(wù)。

root@pi6 $ docker service create --name whoami -p 80:8000 hypriot/rpi-whoami
buy0q65lw7nshm76kvy5imxk3

在“docker swarm ls”命令的幫助下,我們可以檢查這項(xiàng)新服務(wù)的狀態(tài)。

root@pi6 $ docker service ls
ID            NAME    SCALE  IMAGE               COMMAND
buy0q65lw7ns  whoami  1      hypriot/rpi-whoami

下面檢查我們是否能夠通過curl命令向eth0網(wǎng)絡(luò)接口發(fā)送l http命令,從而請(qǐng)求目錄頁(yè)面。

root@pi6 $ curl http://192.168.178.24
I"m 1b6df814c654

一切順利,鼓掌!

有些朋友可能注意到,“docker swarm ls”命令的標(biāo)題行中存在“SCALE”部分,這似乎意味著我們可以對(duì)服務(wù)進(jìn)行擴(kuò)展。

root@pi6 $ docker service scale whoami=5
whoami scaled to 5

那就來(lái)實(shí)際驗(yàn)證一下吧:

root@pi6 $ docker service ls
ID            NAME    SCALE  IMAGE               COMMAND
buy0q65lw7ns  whoami  5      hypriot/rpi-whoami

root@pi6 $ for i in {1..5}; do curl http://192.168.178.24; done
I"m 8db1657e8517
I"m e1863a2be88d
I"m 1b6df814c654
I"m 8db1657e8517
I"m e1863a2be88d

非常簡(jiǎn)單。

但這種方式與原有Swarm其實(shí)差不多,只不過在使用感受上更便捷也更快速。請(qǐng)注意,我們使用的是Raspberry Pi而非強(qiáng)大的服務(wù)器,所以要對(duì)性能擁有較為保守的估計(jì)。

下面從單一Docker引擎的角度來(lái)看看目前的運(yùn)行狀態(tài):

root@pi6 $ docker ps
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS               NAMES
e1863a2be88d        hypriot/rpi-whoami:latest   "/http"             2 minutes ago       Up 2 minutes        8000/tcp            whoami.4.0lg12zndbal72exqe08r9wvpg
8db1657e8517        hypriot/rpi-whoami:latest   "/http"             2 minutes ago       Up 2 minutes        8000/tcp            whoami.5.5z6mvsrdy73m5w24icgsqc8i2
1b6df814c654        hypriot/rpi-whoami:latest   "/http"             8 minutes ago       Up 8 minutes        8000/tcp            whoami.1.bg4qlpiye6h6uxyf8cmkwuh52

如大家所見,已經(jīng)啟動(dòng)的容器有5套,其中3套駐留于“pi6”中。

下面看看是否能夠找到其它容器:

root@pi1 docker ps
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS               NAMES
db411a119c0a        hypriot/rpi-whoami:latest   "/http"             6 minutes ago       Up 6 minutes        8000/tcp            whoami.2.2tf7yhmx9haol7e2b7xib2emj
0a4bf32fa9c4        hypriot/rpi-whoami:latest   "/http"             6 minutes ago       Up 6 minutes        8000/tcp            whoami.3.2r6mm091c2ybr0f9jz4qaxw9k

那么如果我們將這套Swarm集群駐留在“pi1”上,結(jié)果又會(huì)如何?

root@pi1 docker swarm leave
Node left the default swarm.

下面看看另一節(jié)點(diǎn)上的運(yùn)行情況:

docker ps
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS               NAMES
58620e3d533c        hypriot/rpi-whoami:latest   "/http"             46 seconds ago      Up 43 seconds       8000/tcp            whoami.2.cgc4e2ixulc2f3ehr4laoursg
acc9b523f434        hypriot/rpi-whoami:latest   "/http"             46 seconds ago      Up 43 seconds       8000/tcp            whoami.3.67bhlo3nwgehthi3bg5bfdzue
e1863a2be88d        hypriot/rpi-whoami:latest   "/http"             8 minutes ago       Up 8 minutes        8000/tcp            whoami.4.0lg12zndbal72exqe08r9wvpg
8db1657e8517        hypriot/rpi-whoami:latest   "/http"             8 minutes ago       Up 8 minutes        8000/tcp            whoami.5.5z6mvsrdy73m5w24icgsqc8i2
1b6df814c654        hypriot/rpi-whoami:latest   "/http"             15 minutes ago      Up 14 minutes       8000/tcp            whoami.1.bg4qlpiye6h6uxyf8cmkwuh52

這里的情況相當(dāng)于“pi1”節(jié)點(diǎn)發(fā)生故障,此時(shí)“pi1”中運(yùn)行的全部容器都會(huì)被自動(dòng)遷移至另一集群節(jié)點(diǎn)。這項(xiàng)機(jī)制在實(shí)際生產(chǎn)當(dāng)中無(wú)疑非常重要。

那么下面我們回顧一下之前了解到的信息:

我們創(chuàng)建了一款小型動(dòng)態(tài)微服務(wù)應(yīng)用,完全由Docker構(gòu)成。Docker Swarm現(xiàn)在被整合至Docker-Engine當(dāng)中,而不再以獨(dú)立軟件形式存在。在多數(shù)情況下,這能夠?yàn)閼?yīng)用后端服務(wù)建立起獨(dú)立的代理機(jī)制。不再需要使用nginx、HAProxy或者Traefik。

盡管活動(dòng)部件數(shù)量有所減少,但我們現(xiàn)在反而擁有了內(nèi)置的高可用性與負(fù)載均衡功能。我非常期待未來(lái)Docker Swarm正式版本中會(huì)帶來(lái)哪些新的驚喜,又如何與Docker Compose進(jìn)行協(xié)作。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/26660.html

相關(guān)文章

  • 數(shù)人云CTO解讀Docker 1.12和金融業(yè)容器化

    摘要:月日數(shù)人云在上海舉辦金融沙龍,邀請(qǐng)上交所和近二十家來(lái)自銀行保險(xiǎn)證券的技術(shù)專家一同探討容器技術(shù)在金融業(yè)中的最佳實(shí)踐。數(shù)人云肖德時(shí)在會(huì)上將傳統(tǒng)金融行業(yè)通過容器可以解決的四大問題做了逐一解讀。如何動(dòng)態(tài)的分配,就是剛才上交所介紹的一些治理的方法。 7月29日數(shù)人云在上海舉辦金融沙龍,邀請(qǐng)上交所和近二十家來(lái)自銀行、保險(xiǎn)、證券的IT技術(shù)專家一同探討容器技術(shù)在金融業(yè)中的最佳實(shí)踐。數(shù)人云CTO肖德時(shí)在...

    Gemini 評(píng)論0 收藏0
  • 劍指Kubernetes 揭秘騰訊云的PaaS技術(shù)選型策略

    摘要:騰訊云在年底決定開發(fā)容器產(chǎn)品隨后組建容器技術(shù)團(tuán)隊(duì)并進(jìn)行技術(shù)選型通過對(duì)不同編排工具的分析對(duì)比最終選擇作為容器編排引擎并且迅速在年初推出容器解決方案為用戶提供托管的一站式服務(wù)。但是騰訊云最終選擇了現(xiàn)在看來(lái)這個(gè)選擇無(wú)比正確。Kubernetes 很火,一大批互聯(lián)網(wǎng)公司早已領(lǐng)先一步,搭建起專有的 PaaS平臺(tái),傳統(tǒng)企業(yè)們看到的 Kubernetes的趨勢(shì),亦不甘落后,在試水的道上一路狂奔。雖然,Ku...

    icattlecoder 評(píng)論0 收藏0
  • SwarmKit知多少——來(lái)自源碼世界的深入解讀

    摘要:一個(gè)容器起來(lái),能夠?qū)ν夥?wù),這時(shí)就看下一步的負(fù)載均衡服務(wù)發(fā)現(xiàn)以及編排。它們有不同的應(yīng)用場(chǎng)景,比如傾向于四層的負(fù)載均衡。不單是負(fù)載均衡,它同時(shí)解決了服務(wù)發(fā)現(xiàn)和負(fù)載均衡兩個(gè)點(diǎn)。 今天是數(shù)人云容器三國(guó)演義Meetup嘉賓演講實(shí)錄第二彈。數(shù)人云工程師春明為大家奉送了一盤干貨的大餐,讓我們讀讀源碼,深入了解一下SwarmKit的世界吧! 小數(shù)前方預(yù)警:有大量代碼出現(xiàn)! showImg(htt...

    stefanieliang 評(píng)論0 收藏0
  • Docker Swarm在生產(chǎn)環(huán)境中的進(jìn)階指南

    摘要:應(yīng)該如何解決本文將給出若干提示,如何在生產(chǎn)環(huán)境中使用。路由匹配服務(wù)發(fā)現(xiàn)負(fù)載均衡跨容器通訊非常可靠。在單個(gè)端口上運(yùn)行一個(gè)服務(wù),節(jié)點(diǎn)的任意主機(jī)都可以訪問,負(fù)載均衡完全在后臺(tái)實(shí)現(xiàn)。 上周數(shù)人云給大家分享了——《你可能需要的關(guān)于Docker Swarm的經(jīng)驗(yàn)分享》今天給大家?guī)?lái)這位作者大大的后續(xù)文章——《Docker Swarm在生產(chǎn)環(huán)境中的進(jìn)階指南》 當(dāng)在本地開發(fā)環(huán)境中使用Docker,或者...

    galaxy_robot 評(píng)論0 收藏0
  • 數(shù)人云容器管理工具 Crane 現(xiàn)已開源

    摘要:指導(dǎo)員明伯伯?dāng)?shù)人云工程師手記相關(guān)閱讀基于的集群管理開發(fā)實(shí)踐服務(wù)發(fā)現(xiàn),負(fù)載均衡和 這是一個(gè)容器信息臃腫的時(shí)代。 Docker 鯨魚鼓著圓圓的肚子在西雅圖開了一場(chǎng)名為 DockerCon2016 的大會(huì),全球 4000 人參加, 8 大看點(diǎn)留下對(duì)容器生態(tài)的更多暢想。 數(shù)人云一直專注于以企業(yè)級(jí)的 Mesos +容器技術(shù)棧,出于對(duì)容器新技術(shù)的熱愛,我們?cè)谏鐓^(qū)版的工具上小試牛刀,距 Docker...

    NeverSayNever 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<