當前位置:
首頁 > 最新 > Docker 引擎的 Swarm 模式:添加工作者節點教程

Docker 引擎的 Swarm 模式:添加工作者節點教程

我們學習了如何初始化以及啟動 Docker 1.12 中內置的原生的集群以及編排功能。但是我們只有管理者manager節點還沒有其它工作者worker節點。今天我們會展開講述這個。

-- Igor Ljubuncic

本文導航

先決條件

10%

現在開始

33%

加入工作者(worker)

37%

創建或縮放服務

57%

總結

72%

編譯自http://www.dedoimedo.com/computers/docker-swarm-adding-worker-nodes.html

作者Igor Ljubuncic

譯者geekpi

讓我們繼續幾周前在 CentOS 7.2 中開始的工作。 在本指南

[1]

中,我們學習了如何初始化以及啟動 Docker 1.12 中內置的原生的集群以及編排功能。但是我們只有管理者manager節點還沒有其它工作者worker節點。今天我們會展開講述這個。

我將向你展示如何將不對稱節點添加到 Sawrm 中,比如一個與 CentOS 相鄰的Fedora 24

[2]

,它們都將加入到集群中,還有相關很棒的負載均衡等等。當然這並不是輕而易舉的,我們會遇到一些障礙,所以它應該是非常有趣的。

Teaser

先決條件

在將其它節點成功加入 Swarm 之前,我們需要做幾件事情。理想情況下,所有節點都應該運行相同版本的 Docker,為了支持原生的編排功能,它的版本至少應該為 1.12。像 CentOS 一樣,Fedora 內置的倉庫沒有最新的構建版本,所以你需要手動構建,或者使用 Docker 倉庫手動添加和安裝

[3]

正確的版本,並修復一些依賴衝突。我已經向你展示了如何在 CentOS 中操作,經過是相同的。

此外,所有節點都需要能夠相互通信。這就需要有正確的路由和防火牆規則,這樣管理者manager和工作者worker節點才能互相通信。否則,你無法將節點加入 Swarm 中。最簡單的解決方法是臨時清除防火牆規則 (),但這可能會損害你的安全。請確保你完全了解你正在做什麼,並為你的節點和埠創建正確的規則。

Error response from daemon: Timeout was reached before node was joined. The attempt to join the swarm will continue in the background. Use the "docker info" command to see the current swarm status of your node.

守護進程的錯誤響應:節點加入之前已超時。嘗試加入 Swarm 的請求將在後台繼續進行。使用 「docker info」 命令查看節點的當前 Swarm 狀態。

你需要在主機上提供相同的 Docker 鏡像。在上一個教程中我們創建了一個 Apache 映像,你需要在你的工作者worker節點上執行相同操作,或者分發已創建的鏡像。如果你不這樣做,你會遇到錯誤。如果你在設置 Docker 上需要幫助,請閱讀我的介紹指南

[4]

和網路教程

[5]

現在開始

現在我們有一台啟動了 CentOS 機器,並成功地創建了容器。你可以使用主機埠連接到該服務,這一切都看起來很好。目前,你的 Swarm 只有管理者manager。

Manager

加入工作者worker

要添加新的節點,你需要使用 命令。但是你首先必須提供令牌、IP 地址和埠,以便工作者woker節點能正確地對 Swarm 管理器進行身份驗證。接著(在 Fedora 上)執行:

如果你不修復防火牆和路由規則,你會得到超時錯誤。如果你已經加入了 Swarm,重複 命令會收到錯誤:

如果有疑問,你可以離開 Swarm,然後重試:

在工作者worker節點中,你可以使用 來檢查狀態:

創建或縮放服務

現在,我們需要看下 Docker 是否以及如何在節點間分發容器。我的測試展示了一個在非常輕的負載下相當簡單的平衡演算法。試了一兩次之後,即使在我嘗試縮放並更新之後,Docker 也沒有將運行的服務重新分配給新的 worker。同樣,有一次,它在工作者worker節點上創建了一個新的服務。也許這是最好的選擇。

Scale service

Service ls

Services ls, more

在新的工作者worker節點上完整創建新的服務。

過了一段時間,兩個容器之間的現有服務有一些重新分配,但這需要一些時間。新服務工作正常。這只是一個前期觀察,所以我現在不能說更多。現在是開始探索和調整的新起點。

負載均衡過了一會工作了。

總結

Docker 是一隻靈巧的小野獸,它仍在繼續長大,變得更複雜、更強大,當然也更優雅。它被一個大企業吃掉只是一個時間問題。當它帶來了原生的編排功能時,Swarm 模式運行得很好,但是它不只是幾個容器而已,而是充分利用了其演算法和可擴展性。

我的教程展示了如何將 Fedora 節點添加到由 CentOS 運行的群集中,並且兩者能並行工作。關於負載平衡還有一些問題,但這是我將在以後的文章中探討的。總而言之,我希望這是一個值得記住的一課。我們已經解決了在嘗試設置 Swarm 時可能遇到的一些先決條件和常見問題,同時我們啟動了一堆容器,我們甚至簡要介紹了如何縮放和分發服務。要記住,這只是一個開始。

乾杯。

作者簡介:

我是 Igor Ljubuncic。現在大約 38 歲,已婚但還沒有孩子。我現在在一個大膽創新的雲科技公司做首席工程師。直到大約 2015 年初時,我還在一個全世界最大的 IT 公司之一中做系統架構工程師,和一個工程計算團隊開發新的基於 Linux 的解決方案,優化內核以及攻克 Linux 的問題。在那之前,我是一個為高性能計算環境設計創新解決方案的團隊的技術領導。還有一些其他花哨的頭銜,包括系統專家、系統程序員等等。所有這些都曾是我的愛好,但從 2008 年開始成為了我的付費工作。還有什麼比這更令人滿意的呢?

從 2004 年到 2008 年間,我曾通過作為醫學影像行業的物理學家來糊口。我的工作專長集中在解決問題和演算法開發。為此,我廣泛地使用了 Matlab,主要用於信號和圖像處理。另外,我得到了幾個主要的工程方法學的認證,包括 MEDIC 六西格瑪綠帶、試驗設計以及統計工程學。

我也開始寫書,包括奇幻類和 Linux 上的技術性工作。彼此交融。

要查看我開源項目、出版物和專利的完整列表,請滾動到下面。

有關我的獎項,提名和 IT 相關認證的完整列表,請稍等一下。

via: http://www.dedoimedo.com/computers/docker-swarm-adding-worker-nodes.html

作者:Igor Ljubuncic

[6]

譯者:geekpi校對:wxy

本文由LCTT原創編譯,Linux中國榮譽推出

LCTT 譯者

geekpi

共計翻譯:545篇

貢獻時間:1220 天

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux中國 的精彩文章:

開發一個 Linux 調試器(七):源碼級斷點
Docker 引擎的 Swarm 模式:入門教程
創建更好的災難恢復計劃
使用 OctoDNS 啟用 DNS 分割權威
Kubernetes 是什麼?

TAG:Linux中國 |