大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Docker教程
Docker安裝
Docker使用
Docker實(shí)例

Docker Stack管理應(yīng)用

Stack 是一組相關(guān)聯(lián)的服務(wù)和基礎(chǔ)設(shè)施,需要進(jìn)行統(tǒng)一的部署和管理。雖然這句話里充斥著術(shù)語(yǔ),但仍提醒我們 Stack 是由普通的 Docker 資源構(gòu)建而來(lái):網(wǎng)絡(luò)、卷、密鑰、服務(wù)等。

這意味著可以通過(guò)普通的 Docker 命令對(duì)其進(jìn)行查看和重新配置,例如 docker network、docker volume、docker secret、docker service 等。

在此前提之下,通過(guò) docker service 命令來(lái)管理 Stack 中某個(gè)服務(wù)是可行的。一個(gè)簡(jiǎn)單的例子是通過(guò) docker service scale 命令來(lái)擴(kuò)充 appserver 服務(wù)的副本數(shù)。但是,這并不是推薦的方式!

推薦方式是通過(guò)聲明式方式修改,即將 Stack 文件作為配置的唯一聲明。這樣,所有 Stack 相關(guān)的改動(dòng)都需要體現(xiàn)在 Stack 文件中,然后更新重新部署應(yīng)用所需的 Stack 文件。

下面是一個(gè)簡(jiǎn)單例子,闡述了為什么通過(guò)命令修改的方式不好(通過(guò) CLI 進(jìn)行變更)。

假設(shè)讀者已經(jīng)部署了一個(gè) Stack,采用的 Stack 文件是《Docker Stack》一 節(jié)中從 GitHub 復(fù)制的倉(cāng)庫(kù)中的 docker-stack.yml。這意味著目前 appserver 服務(wù)有兩個(gè)副本。如果通過(guò) docker service scale 命令將副本修改為 4 個(gè),當(dāng)前運(yùn)行的集群會(huì)有 4 個(gè)副本,但是 Stack 文件中仍然是兩個(gè)。

但是,假設(shè)通過(guò)修改 Stack 文件對(duì) Stack 做了某些改動(dòng),然后通過(guò) docker stack deploy 命令進(jìn)行滾動(dòng)部署。這會(huì)導(dǎo)致 appserver 服務(wù)副本數(shù)被回滾到兩個(gè),因?yàn)?Stack 文件就是這么定義的。因此,推薦對(duì) Stack 所有的變更都通過(guò)修改 Stack 文件來(lái)進(jìn)行,并且將該文件放到一個(gè)合適的版本控制系統(tǒng)當(dāng)中。

一起來(lái)回顧對(duì)Stack進(jìn)行兩個(gè)聲明式修改的過(guò)程。目標(biāo)是進(jìn)行如下改動(dòng)。

增加 appserver 副本數(shù),數(shù)量為 2~10。將 visualizer 服務(wù)的優(yōu)雅停止時(shí)間增加到 2min。修改 docker-stack.yml 文件,更新兩個(gè)值:

services.appserver.deploy.replicas=10services.visualizer.stop_grace_period=2m

目前,Stack 文件中的內(nèi)容如下。

<Snip>
appserver:
image: dockersamples/atsea_app
networks:
- front-tier
- back-tier
- payment
deploy:
replicas: 10 <<Updated value
<Snip>
visualizer:
image: dockersamples/visualizer:stable
ports:
- "8001:8080"
stop_grace_period: 2m <<Updated value
<Snip

保存文件并重新部署應(yīng)用。

$ docker stack deploy -c docker-stack.yml seastack
Updating service seastack_reverse_proxy (id: z4crmmrz7zi83o0721heohsku)
Updating service seastack_database (id: 3vvpkgunetxaatbvyqxfic115)
Updating service seastack_appserver (id: ljht639w33dhv0dmht1q6mueh)
Updating service seastack_visualizer (id: rbwoyuciglre01hsm5fviabjf)
Updating service seastack_payment_gateway (id: w4gsdxfnb5gofwtvmdiooqvxs)

以上重新部署應(yīng)用的方式,只會(huì)更新存在變更的部分。

運(yùn)行 docker stack ps 命令來(lái)確認(rèn) appserver 副本數(shù)量確實(shí)增加。

$ docker stack ps seastack
NAME NODE DESIRED STATE CURRENT STATE
seastack_visualizer.1 mgr-1 Running Running 1 second ago
seastack_visualizer.1 mgr-1 Shutdown Shutdown 3 seconds ago
seastack_appserver.1 wrk-2 Running Running 24 minutes ago
seastack_appserver.2 wrk-1 Running Running 24 minutes ago
seastack_appserver.3 wrk-2 Running Running 1 second ago
seastack_appserver.4 wrk-1 Running Running 1 second ago
seastack_appserver.5 wrk-2 Running Running 1 second ago
seastack_appserver.6 wrk-1 Running Starting 7 seconds ago
seastack_appserver.7 wrk-2 Running Running 1 second ago
seastack_appserver.8 wrk-1 Running Starting 7 seconds ago
seastack_appserver.9 wrk-2 Running Running 1 second ago
seastack_appserver.10 wrk-1 Running Starting 7 seconds ago

輸出內(nèi)容有所裁剪,只展示了受變更影響的服務(wù)。

注意關(guān)于 visualizer 服務(wù)有兩行內(nèi)容。其中一行表示某個(gè)副本在 3s 前停止,另一行表示新副本已經(jīng)運(yùn)行了 1s。這是因?yàn)閯偛艑?duì) visualizer 服務(wù)作了修改,所以 Swarm 集群終止了正在運(yùn)行的副本,并且啟動(dòng)了新的副本,新副本中更新了 stop_grace_period 的值。

還需要注意的是,appserver 服務(wù)目前擁有 10 個(gè)副本,但不同副本的“CURRENT STATE”一列狀態(tài)并不相同:有些處于 running 狀態(tài),而有些仍在 starting 狀態(tài)。

經(jīng)過(guò)足夠的時(shí)間,集群的狀態(tài)會(huì)完成收斂,期望狀態(tài)和當(dāng)前狀態(tài)就會(huì)保持一致。在那時(shí),集群中實(shí)際部署和觀察到的狀態(tài),就會(huì)跟 Stack 文件中定義的內(nèi)容完全一致。

所有應(yīng)用 /Stack 都應(yīng)采用該方式進(jìn)行更新。所有的變更都應(yīng)該通過(guò) Stack 文件進(jìn)行聲明,然后通過(guò) docker stack deploy 進(jìn)行部署。

正確的刪除某個(gè) Stack 方式是通過(guò) docker stack rm 命令。一定要謹(jǐn)慎!刪除 Stack 不會(huì)進(jìn)行二次確認(rèn)。

$ docker stack rm seastack
Removing service seastack_appserver
Removing service seastack_database
Removing service seastack_payment_gateway
Removing service seastack_reverse_proxy
Removing service seastack_visualizer
Removing network seastack_front-tier
Removing network seastack_payment
Removing network seastack_default
Removing network seastack_back-tier

注意:網(wǎng)絡(luò)和服務(wù)已經(jīng)刪除,但是密鑰并沒(méi)有。這是因?yàn)槊荑€是在 Stack 部署前就創(chuàng)建并存在了。在 Stack 最上層結(jié)構(gòu)中定義的卷同樣不會(huì)被 docker stack rm 命令刪除。這是因?yàn)榫淼脑O(shè)計(jì)初衷是保存持久化數(shù)據(jù),其生命周期獨(dú)立于容器、服務(wù)以及 Stack 之外。

全部教程
主站蜘蛛池模板: 欧美啊v| 国语高清精品一区二区三区 | 免费综合网| 在线视频一区二区日韩国产 | 成人在线短视频 | 婷婷热| 精品一区二区三区在线观看视频 | 嘿咻嘿咻免费区在线观看吃奶 | 久久精品国产精品青草不卡 | h片网站在线观看 | 免费观看日本特色做爰视频在线 | 天天操天天插 | 成人欧美视频在线观看播放 | 99久久这里只有精品 | 亚洲视频国产 | 亚洲乱码在线观看 | 日韩毛片在线观看 | 一级毛片一级毛片免费毛片 | 老妇毛片 | 欧美网站www | 免费在线黄色网址 | 欧美成人另类 | 久久这里只有精品2 | 久久精品国产亚洲综合色 | 亚洲精品高清在线一区二区三区 | 国产免费一级高清淫曰本片 | 久久高清一级毛片 | 夜色91| 久久色精品 | 亚洲高清不卡视频 | 国产高清久久 | 香蕉综合网 | 黄色在线观看www | 美女洗澡一级毛片 | 色爱区综合激情五月综合激情 | 中文亚洲字幕 | 青草青草久热精品视频在线观看 | 四虎影视库 | 日韩 亚洲 欧美 中文 高清 | 91在线视频在线 | 国产精品久久亚洲不卡4k岛国 |