中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Docker中Swarm如何使用

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Docker中 Swarm如何使用,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)建站長(zhǎng)期為上1000家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為桑植企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,桑植網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

Swarm本身就是“群”的意思,人群、蜂群。這里就是指計(jì)算機(jī)集群(cluster)在用Docker連接后的狀態(tài)。docker swarm命令可以創(chuàng)建、加入、離開(kāi)一個(gè)集群。

Node就是計(jì)算機(jī)節(jié)點(diǎn),也可以認(rèn)為是一個(gè)Docker節(jié)點(diǎn)。Node分為兩類(lèi):Manager和Worker。一個(gè)Swarm至少要有一個(gè)Manager,部分管理命令只有在Manager上才能使用。兩類(lèi)Node都可以運(yùn)行Service,但只有Manager上才能執(zhí)行運(yùn)行命令。比如,在Manager才能使用docker node命令可以查看、配置、刪除Node。

Stack是一組Service,和docker-compose類(lèi)似。默認(rèn)情況下,一個(gè)Stack共用一個(gè)Network,相互可訪問(wèn),與其它Stack網(wǎng)絡(luò)隔絕。這個(gè)概念只是為了編排的方便。docker stack命令可以方便地操作一個(gè)Stack,而不用一個(gè)一個(gè)地操作Service。

Service是一類(lèi)容器。對(duì)用戶(hù)來(lái)說(shuō),Service就是與Swarm交互的最核心內(nèi)容。Service有兩種運(yùn)行模式,一是replicated,指定一個(gè)Service運(yùn)行容器的數(shù)量;二是global,在所有符合運(yùn)行條件的Node上,都運(yùn)行一個(gè)這類(lèi)容器。docker service命令可以操作Swarm中的Service。

Task就是指運(yùn)行一個(gè)容器的任務(wù),是Swarm執(zhí)行命令的最小單元。要成功運(yùn)行一個(gè)Service,需要執(zhí)行一個(gè)或多個(gè)Task(取決于一個(gè)Service的容器數(shù)量),確保每一個(gè)容器都順利啟動(dòng)。通常用戶(hù)操作的是Service,而非Task。

Load balancing即負(fù)載均衡,也包含反向代理。Swarm使用的是Ingress形式的負(fù)載均衡,即訪問(wèn)每個(gè)節(jié)點(diǎn)的某個(gè)Published端口,都可自動(dòng)代理到真正的服務(wù)。大致原理如下圖所示。

Docker中 Swarm如何使用

ingress network

Replicated Mode

services:    some-serivce:      ...      deploy:        mode: replicated        replicas: 3

默認(rèn)情況下,mode就是replicated,所以這行可以省略。默認(rèn)replicas數(shù)目為1,代表這個(gè)Service只啟動(dòng)1個(gè)容器。這個(gè)模式,可以按需啟動(dòng)多個(gè)服務(wù),Swarm會(huì)自動(dòng)調(diào)節(jié),有時(shí)一個(gè)Node會(huì)啟動(dòng)多個(gè)容器。

Global Mode

services:    some-serivce:      ...      deploy:        mode: global        placement:          ...

所有可部署的Node,都部署一個(gè)。通過(guò)placement,可以限定滿(mǎn)足條件的Node,而避免在不合適的Node進(jìn)行部署。

操作

這里列出一些常用的具體操作。

創(chuàng)建第一個(gè)Node

docker swarm init --advertise-addr $IP

$IP是當(dāng)前Node的外部可訪問(wèn)IP,便于其它Node尋址。

這樣,一個(gè)Swarm就被初始化完成了,它僅有一個(gè)Manager節(jié)點(diǎn)。

添加新的Node到Swarm

在Manager節(jié)點(diǎn),執(zhí)行以下命令可查看到如何加入一個(gè)Node:

$ docker swarm join-token manager  To add a manager to this swarm, run the following command:      docker swarm join --token SWMTKN-1-2zspelk468gb6wgw5adea4wlbw4kfy3q1uhr86zpafl9m5a3ho-ezs4fylj526e801b3cl0pojr5 10.174.28.52:2377  $ docker swarm join-token worker  To add a worker to this swarm, run the following command:      docker swarm join --token SWMTKN-1-2zspelk468gb6wgw5adea4wlbw4kfy3q1uhr86zpafl9m5a3ho-164iqklrfv8o3t55g088hylyk 10.174.28.52:2377

在一個(gè)未加入任何Swarm的機(jī)器上,執(zhí)行以上顯示的命令docker swarm join --token ..., 即可成為這個(gè)Swarm的Manage或Worker節(jié)點(diǎn)。

設(shè)置節(jié)點(diǎn)Label

在Manager節(jié)點(diǎn),可以對(duì)任意節(jié)點(diǎn)設(shè)置標(biāo)簽:

docker node update $node_name --label-add main=true

$node_name就是要設(shè)置節(jié)點(diǎn)的ID或HOSTNAME。Label是鍵值對(duì)形式,main=true中的main就是鍵、true就是值。

設(shè)置了Label以后,在Compose文件中就可以用placement中的constraints來(lái)對(duì)可用節(jié)點(diǎn)作出限制。

services:    some-serivce:      ...      deploy:        placement:          constraints:            - node.labels.main == true        ...

以上配置,讓some-service僅在Label被設(shè)置為main=true的節(jié)點(diǎn),才能使用。

啟動(dòng)、停止服務(wù)

docker stack deploy $stack_name -c docker-compose.yaml -c other.yaml ...

$stack_name是Stack名稱(chēng)。可以用-c指定多個(gè)docker-compose文件,也可在相同Stack下分批次deploy多個(gè)文件。這些YAML文件的寫(xiě)法,和原先用docker-compose命令執(zhí)行的沒(méi)有本質(zhì)區(qū)別,只是多加了以下獨(dú)特配置,并且會(huì)忽略一些Swarm場(chǎng)景下不支持的配置。

推薦使用docker-compose文件來(lái)編排Stack,而非直接用docker service create來(lái)手工創(chuàng)建。詳細(xì)配置項(xiàng),可參考《Compose file version 3 reference | Docker Documentation》。

需要停止Stack的所有服務(wù)時(shí),可以執(zhí)行以下命令。

docker stack rm $stack_name

更新已運(yùn)行服務(wù)的鏡像

docker service update --image $image:$tag $service_name

上述就是小編為大家分享的Docker中 Swarm如何使用了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享題目:Docker中Swarm如何使用
轉(zhuǎn)載來(lái)于:http://www.rwnh.cn/article2/ippoic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、ChatGPT、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、App開(kāi)發(fā)、定制開(kāi)發(fā)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
金堂县| 马公市| 花莲县| 霍林郭勒市| 平阴县| 治多县| 永州市| 吉林省| 镇平县| 惠东县| 阿巴嘎旗| 隆化县| 双鸭山市| 宁津县| 上饶县| 汨罗市| 桐柏县| 烟台市| 阳高县| 夏河县| 海宁市| 永顺县| 日喀则市| 布尔津县| 上杭县| 永定县| 酒泉市| 岗巴县| 会东县| 遵义县| 星子县| 惠州市| 桦甸市| 盐源县| 嘉定区| 岐山县| 柳州市| 大埔县| 株洲县| 河西区| 睢宁县|