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

Docker Swarm概念與基本用法

系統(tǒng) Linux
Docker Swarm是一個(gè)簡(jiǎn)單的軟件,似乎不堪大用。但是它與docker-compose兼容的優(yōu)點(diǎn),可以彌補(bǔ)一切。對(duì)于沒(méi)有集群使用經(jīng)驗(yàn)的小白,用Docker Swarm起步,是一個(gè)很好的選擇。

 Docker Swarm是Docker公司開(kāi)發(fā)的容器集群管理服務(wù)。從1.12.0版本開(kāi)始,已經(jīng)是Docker安裝后自帶的一部分(捆綁軟件)了,又稱(chēng)為Swarm Mode,無(wú)需額外安裝。

[[340452]]

與Kubernetes相比,Docker Swarm是一個(gè)簡(jiǎn)單的軟件,似乎不堪大用。但是它與docker-compose兼容的優(yōu)點(diǎn),可以彌補(bǔ)一切。對(duì)于沒(méi)有集群使用經(jīng)驗(yàn)的小白,用Docker Swarm起步,是一個(gè)很好的選擇。

概念

Docker Swarm,主要包含以下概念:

  •  Swarm
  •  Node
  •  Stack
  •  Service
  •  Task
  •  Load balancing

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ù)。大致原理如下圖所示。

ingress network

Replicated Mode 

  1. services:  
  2.   some-serivce:  
  3.     ...  
  4.     deploy:  
  5.       mode: replicated  
  6.       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 

  1. services:  
  2.   some-serivce:  
  3.     ...  
  4.     deploy:  
  5.       mode: global  
  6.       placement:  
  7.         ... 

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

操作

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

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

  1. 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: 

  1. $ docker swarm join-token manager  
  2. To add a manager to this swarm, run the following command:  
  3.     docker swarm join --token SWMTKN-1-2zspelk468gb6wgw5adea4wlbw4kfy3q1uhr86zpafl9m5a3ho-ezs4fylj526e801b3cl0pojr5 10.174.28.52:2377  
  4. $ docker swarm join-token worker  
  5. To add a worker to this swarm, run the following command:  
  6.     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)簽: 

  1. 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)作出限制。 

  1. services:  
  2.   some-serivce:  
  3.     ...  
  4.     deploy:  
  5.       placement:  
  6.         constraints:  
  7.           - node.labels.main == true  
  8.       ... 

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

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

  1. 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í)行以下命令。 

  1. docker stack rm $stack_name 

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

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

 

責(zé)任編輯:龐桂玉 來(lái)源: 馬哥Linux運(yùn)維
相關(guān)推薦

2018-02-02 16:32:10

KubernetesDocker命令

2015-07-23 11:36:28

GIT入門(mén)

2018-07-23 09:02:18

容器KubernetesAmazon

2017-03-31 14:25:19

手動(dòng)docker swar集群

2020-12-31 05:31:01

數(shù)據(jù)結(jié)構(gòu)算法

2024-05-21 08:09:00

OpenTelemetry倉(cāng)庫(kù)

2011-03-28 11:05:17

ODBC

2014-12-31 11:11:52

DockerDocker基本命令

2009-12-31 15:07:13

2015-09-11 16:47:51

安裝DockerUbuntu

2014-04-16 15:11:19

Spark

2012-09-11 14:39:03

Moosefs

2009-03-20 11:46:10

MGCP協(xié)議網(wǎng)關(guān)

2010-08-10 10:23:16

IBM DB2 V9.

2020-09-14 15:43:53

內(nèi)存SDRAMDDR4

2015-08-03 16:15:53

Docker部署集群

2010-05-25 16:46:00

2011-12-15 01:10:03

ibmdw

2024-01-02 15:41:04

CythonPython語(yǔ)言

2010-09-14 09:41:56

DIV技術(shù)DIV標(biāo)簽
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产免费视频在线 | 国产精品1区2区3区 中文字幕一区二区三区四区 | www.嫩草 | 免费看色 | 精品国产一区三区 | 日日骚av| 中文二区 | 国产www. | 久久国| 亚洲精品久久久久久久久久久久久 | 欧美极品少妇xxxxⅹ免费视频 | 天天曰夜夜操 | 激情一区二区三区 | 一区二区国产精品 | 九九99精品| 欧美一级二级在线观看 | 欧美一区二区三区在线观看 | 日韩欧美国产成人一区二区 | 亚洲精品乱码久久久久久按摩观 | 最近日韩中文字幕 | 欧美在线激情 | 理论片免费在线观看 | 97avcc | 精品三区 | 国产精品一区二区三区四区五区 | 天天玩天天操天天干 | 91视频进入 | 亚洲欧美日韩中文在线 | 国产精品一区一区三区 | 99久久婷婷 | 久久精品久久久久久 | 精品亚洲第一 | 欧美一级二级在线观看 | 久久久精品久 | 亚洲欧美在线免费观看 | 成人国产在线视频 | 免费成人高清在线视频 | 欧美一级电影免费 | 欧美中文在线 | 国产成人精品一区二区 | 国产成人精品久久二区二区91 |