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