docker集群部署 第5部分 堆疊

2021-09-21 05:23:47 字數 2898 閱讀 9099

docker集群部署:第5部分:堆疊

介紹在第4部分:服務中,我們學習了如何設定swarm(集群),如執行docker集群、部署了乙個應用程式,容器在多台機器上執行等。

在第5部分:堆疊中,將到達分布式應用程式層次結構的頂部:堆疊。堆疊是一組相互關聯的服務,它們可以共享依賴關係,並且可以一起協調和縮放。單個堆疊能夠定義和協調整個應用程式的功能(儘管非常複雜的應用程式可能需要使用多個堆疊)。

好的一點是,從第3部分開始,在建立docker-compose.yml檔案並使用docker堆疊部署時,從技術上講,我們一直在使用堆疊。但是,這是在單一主機上執行的單個服務堆疊,通常不會在生產中發生。本節將學習,使多個服務相互關聯,並在多台機器上執行它們。

新增乙個新服務並重新部署

將服務新增到我們的docker-compose.yml檔案很容易。首先,我們新增乙個免費的視覺化器服務,讓我們看看集群如何排程容器的。

在編輯器中開啟docker-compose.yml,並用下面的**替換它的內容。

#cat docker-compose.yml

services:

web:

#replace username/repo:tag with your name and image details

image: friendlyhello:latest

deploy:

replicas: 5

restart_policy:

condition: on-failure

ports:

- "80:80"

networks:

- webnet

visualizer:

image: dockersamples/visualizer:stable

ports:

- "8080:8080"

volumes:

- "/var/run/docker.sock:/var/run/docker.sock"

deploy:

placement:

constraints: [node.role == manager]

networks:

- webnet

networks:

webnet:

這裡新增的唯一東西就是網路對等服務,名為視覺化工具。在這裡看到兩件新事物:乙個是卷金鑰,賦予視覺化器訪問docker的主機套接字檔案的許可權,另乙個是放置金鑰,確保此服務只能在群集管理器上執行,不會在從機上執行。

在管理器上重新執行docker stack deploy命令,任何需要更新的服務都將被更新:

#docker

stack

deploy

-cdocker-compose

.yml

getstartedlab

creating

network

getstartedlab_webnet

creating

service

getstartedlab_visualizer

creating

service

getstartedlab_web

檢視集群情況,
執行:

#docker stack ps getstartedlab

id                  name                         image                             node                desired state       current state            error               ports

sx2vzeq6arsa getstartedlab_visualizer.1 dockersamples/visualizer:stable swarm1 running running 21 seconds ago

5atk91uju2sr getstartedlab_web.1 friendlyhello:latest swarm2 running running 23 seconds ago

8cklhjg8f69w getstartedlab_web.2 friendlyhello:latest swarm2 running running 23 seconds ago

aakf7bu9svwf getstartedlab_web.3 friendlyhello:latest swarm1 running running 23 seconds ago

w3qfs8mmrhz9 getstartedlab_web.4 friendlyhello:latest swarm2 running running 23 seconds ago

d8mkbmrm8pr5 getstartedlab_web.5 friendlyhello:latest swarm1 running running 22 seconds ago

截圖如下:

BPMN 第5部分 訊息

訊息是乙個基本的 bpmn概念,是不同流程參與者之間通訊的內容。通訊本身稱為訊息流。它顯示了兩個通訊參與者之間的互動,他們由兩個單獨的池表示。訊息流必須將兩個單獨的池或乙個池的物件與另乙個池的物件連線。它無法連線乙個池中的兩個物件。從圖形上看,訊息流是帶有開啟箭頭的虛線。虛線將其與 序列流 區分開來...

Microformats教程 第3部分

本文首發於 http www.lunaticsun.com article microformats three 目前,這個系列已經有兩篇文章了,它們是 什麼是microformats microformats教程 第1部分 microformats教程 第2部分 在這一部分中,我們將討論一種全新的...

Hibernate硬事實第1部分

hibernate是乙個廣泛使用的orm框架。許多組織在其專案中使用它來管理其資料訪問層。但是,許多使用hibernate的開發人員並不完全了解其功能的全部內容。這是第1 週後在hibernate中鐵的事實集中series.other職位包括 hibernate硬事實第1部分 本文 hibernat...