91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker中 Swarm如何使用

發布時間:2021-07-12 09:54:33 來源:億速云 閱讀:480 作者:Leah 欄目:系統運維

這期內容當中小編將會給大家帶來有關Docker中 Swarm如何使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

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

Node就是計算機節點,也可以認為是一個Docker節點。Node分為兩類:Manager和Worker。一個Swarm至少要有一個Manager,部分管理命令只有在Manager上才能使用。兩類Node都可以運行Service,但只有Manager上才能執行運行命令。比如,在Manager才能使用docker node命令可以查看、配置、刪除Node。

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

Service是一類容器。對用戶來說,Service就是與Swarm交互的最核心內容。Service有兩種運行模式,一是replicated,指定一個Service運行容器的數量;二是global,在所有符合運行條件的Node上,都運行一個這類容器。docker service命令可以操作Swarm中的Service。

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

Load balancing即負載均衡,也包含反向代理。Swarm使用的是Ingress形式的負載均衡,即訪問每個節點的某個Published端口,都可自動代理到真正的服務。大致原理如下圖所示。

Docker中 Swarm如何使用

ingress network

Replicated Mode

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

默認情況下,mode就是replicated,所以這行可以省略。默認replicas數目為1,代表這個Service只啟動1個容器。這個模式,可以按需啟動多個服務,Swarm會自動調節,有時一個Node會啟動多個容器。

Global Mode

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

所有可部署的Node,都部署一個。通過placement,可以限定滿足條件的Node,而避免在不合適的Node進行部署。

操作

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

創建第一個Node

docker swarm init --advertise-addr $IP

$IP是當前Node的外部可訪問IP,便于其它Node尋址。

這樣,一個Swarm就被初始化完成了,它僅有一個Manager節點。

添加新的Node到Swarm

在Manager節點,執行以下命令可查看到如何加入一個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

在一個未加入任何Swarm的機器上,執行以上顯示的命令docker swarm join --token ..., 即可成為這個Swarm的Manage或Worker節點。

設置節點Label

在Manager節點,可以對任意節點設置標簽:

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

$node_name就是要設置節點的ID或HOSTNAME。Label是鍵值對形式,main=true中的main就是鍵、true就是值。

設置了Label以后,在Compose文件中就可以用placement中的constraints來對可用節點作出限制。

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

以上配置,讓some-service僅在Label被設置為main=true的節點,才能使用。

啟動、停止服務

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

$stack_name是Stack名稱。可以用-c指定多個docker-compose文件,也可在相同Stack下分批次deploy多個文件。這些YAML文件的寫法,和原先用docker-compose命令執行的沒有本質區別,只是多加了以下獨特配置,并且會忽略一些Swarm場景下不支持的配置。

推薦使用docker-compose文件來編排Stack,而非直接用docker service create來手工創建。詳細配置項,可參考《Compose file version 3 reference | Docker Documentation》。

需要停止Stack的所有服務時,可以執行以下命令。

docker stack rm $stack_name

更新已運行服務的鏡像

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

上述就是小編為大家分享的Docker中 Swarm如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连南| 南阳市| 东丽区| 黄骅市| 顺平县| 通渭县| 双牌县| 启东市| 马龙县| 固镇县| 德昌县| 桦川县| 江油市| 固安县| 铜陵市| 新建县| 鄂州市| 娄底市| 浦县| 元阳县| 天祝| 泰顺县| 灵川县| 咸丰县| 侯马市| 台中市| 华坪县| 云浮市| 临邑县| 乌海市| 防城港市| 泰安市| 武功县| 平果县| 库伦旗| 延边| 吉首市| 新宾| 大冶市| 山丹县| 林口县|