?
This document uses PHP Chinese website manual Release
Docker Engine 1.12 引入了群模式,使您能夠創(chuàng)建一個(gè)或多個(gè)名為群集的碼頭引擎集群。群集由一個(gè)或多個(gè)節(jié)點(diǎn)組成:以群集模式運(yùn)行 DockerEngine 1.12 或更高版本的物理或虛擬機(jī)。
有兩種類型的節(jié)點(diǎn):經(jīng)理和工人。
如果您尚未閱讀群體模式概述和關(guān)鍵概念。
Manager節(jié)點(diǎn)處理集群管理任務(wù):
維護(hù)集群狀態(tài)
調(diào)度服務(wù)
提供群集模式 HTTP API 端點(diǎn)
使用 Raft 實(shí)施,管理人員可以保持整個(gè)群體及其上運(yùn)行的所有服務(wù)的一致內(nèi)部狀態(tài)。出于測試目的,可以使用單個(gè)管理器運(yùn)行群集。如果單管理器群中的管理器出現(xiàn)故障,您的服務(wù)將繼續(xù)運(yùn)行,但您需要?jiǎng)?chuàng)建一個(gè)新群集以進(jìn)行恢復(fù)。
為了利用群模式的容錯(cuò)功能,Docker 建議您根據(jù)貴組織的高可用性要求實(shí)施奇數(shù)個(gè)節(jié)點(diǎn)。當(dāng)你有多個(gè)管理器時(shí),你可以在沒有停機(jī)時(shí)間的情況下從管理器節(jié)點(diǎn)的故障中恢復(fù)。
三管理者群體容忍一名管理人員的最大損失。
五管理者群體最多可同時(shí)丟失兩個(gè)管理節(jié)點(diǎn)。
一個(gè)N
經(jīng)理集群將容忍最多損失(N-1)/2
經(jīng)理。
Docker 推薦一個(gè)群體最多有七個(gè)管理節(jié)點(diǎn)。
重要提示:添加更多管理者并不意味著可擴(kuò)展性或更高的性能。一般來說,情況正好相反。
工作者節(jié)點(diǎn)也是 Docker Engine 的實(shí)例,其唯一目的是執(zhí)行容器。工作者節(jié)點(diǎn)不參與 Raft 分布式狀態(tài),進(jìn)行調(diào)度決策或服務(wù)于群集模式 HTTP API。
您可以創(chuàng)建一個(gè)管理節(jié)點(diǎn)群,但不能有一個(gè)沒有至少一個(gè)管理節(jié)點(diǎn)的工作節(jié)點(diǎn)。默認(rèn)情況下,所有經(jīng)理都是工人。在單個(gè)管理器節(jié)點(diǎn)集群中,您可以像運(yùn)行命令那樣運(yùn)行命令docker service create
,而且計(jì)劃程序?qū)阉腥蝿?wù)放在本地引擎上。
要阻止調(diào)度程序?qū)⑷蝿?wù)放置到多節(jié)點(diǎn)群中的管理器節(jié)點(diǎn)上,請將管理器節(jié)點(diǎn)的可用性設(shè)置為Drain
。調(diào)度程序正常地停止Drain
模式中節(jié)點(diǎn)上的任務(wù),并調(diào)度Active
節(jié)點(diǎn)上的任務(wù)。調(diào)度程序不會(huì)將新任務(wù)分配給具有Drain
可用性的節(jié)點(diǎn)。
請參閱docker node update
命令行參考以了解如何更改節(jié)點(diǎn)可用性。
您可以通過運(yùn)行將工作節(jié)點(diǎn)提升為管理員docker node promote
。例如,當(dāng)您將管理器節(jié)點(diǎn)離線進(jìn)行維護(hù)時(shí),您可能需要升級工作節(jié)點(diǎn)。請參閱節(jié)點(diǎn)宣傳。
您也可以將管理器節(jié)點(diǎn)降級為工作節(jié)點(diǎn)。請參閱節(jié)點(diǎn)降級。
了解群集模式服務(wù)如何工作。
了解 PKI 如何在群集模式下工作。