docker叢集的功能:把若干台Docker主機抽象化為一個整體,並且透過一個入口(叢集管理器)統一管理這些Docker主機上的各種Docker資源。 docker叢集的優點有:可伸縮擴容,捲動升級,部署上線速度快等。
本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
docker叢集有什麼用?
集群是一組運行docker並且加入在一個群組的多台機器,加入集群之後,你還可以繼續運行自己的docker命令,但是現在這些機器由集群管理器在集群上執行的。
簡單來說,就是把若干台Docker主機抽象化為一個整體,並且透過一個入口(叢集管理器)統一管理這些Docker主機上的各種 Docker 資源。
針對大公司來講,docker叢集是很有優勢的,包括可伸縮擴容,滾動升級,部署上線速度快等。
docker容器可以把你的程式在linux系統中打包起來,然後使你的程式和其他程式隔離,就相當於你在一個虛擬機器上裝了一個軟體,和電腦上的軟體沒有任何聯繫,但是它和虛擬機器最大的不同就是它的效能開銷特別小。
叢集中的機器可以是實體或虛擬的,加入群組後,每台機器都稱為節點。群集管理器可以使用不同的策略來管理運行的容器,例如:emptiest node,這個命令用來填充那些利用最少的容器;global來確保每台機器只能獲得指定容器服務的一個實例。
你可以將這些策略寫入檔案裡面來執行叢集管理器的策略。
叢集管理器是叢集中唯一能夠執行指令的機器,你也可以授權其它機器加入叢集管理工作。被授權的機器只能夠 Workers are just there to provide capacity,而不能讓它機器做什麼或不做什麼。
docker開啟叢集模式後,你的機器就變成了一台叢集管理器,然後docker所執行的指令將是管理叢集的指令,而不僅僅是在你目前機器上執行。
docker群集管理器-Swarm
Docker Swarm 包含兩個面向:一個企業級的 Docker 安全性集群,以及一個微服務應用程式編排引擎。
叢集方面,Swarm 將一個或多個 Docker 節點組織起來,使得使用者能夠以叢集方式管理它們。
Swarm 預設內建加密的分散式叢集儲存(encrypted distributed cluster store)、加密網路(Encrypted Network)、公用TLS(Mutual TLS)、安全叢集存取權杖Secure Cluster Join Token)以及一套簡化數位憑證管理的PKI(Public Key Infrastructure)。我們可以自如地新增或刪除節點。
編排方面,Swarm 提供了一套豐富的 API 使得部署和管理複雜的微服務應用變得易如反掌。透過將應用程式定義在聲明式設定檔中,就可以使用原生的 Docker 指令完成部署。
此外,甚至可以執行滾動升級、回滾以及擴縮容操作,同樣基於簡單的命令即可完成。
以往,Docker Swarm 是一個基於 Docker 引擎之上的獨立產品。自 Docker 1.12 版本之後,它已經完全整合在 Docker 引擎中,執行一條指令即可啟用。到 2018 年,除了原生 Swarm 應用,它還可以部署和管理 Kubernetes 應用。
Swarm 的設定和狀態資訊保存在一套位於所有管理節點上的分散式 etcd 資料庫中。該資料庫運行於記憶體中,並保持資料的最新狀態。關於這個資料庫最棒的是,它幾乎不需要任何配置,作為 Swarm 的一部分被安裝,無須管理。
關於叢集管理,最大的挑戰在於保證其安全性。搭建 Swarm 叢集時將不可避免地使用 TLS,因為它被 Swarm 緊密整合。
在安全意識日盛的今天,這樣的工具值得大力推廣。 Swarm 使用 TLS 進行通訊加密、節點認證和角色授權。自動密鑰輪換(Automatic Key Rotation)更是錦上添花!其在後台默默進行,使用者甚至感知不到此功能的存在。
關於應用程式編排,Swarm 中的最小調度單元是服務。它是隨 Swarm 引入的,在 API 中是一個新的物件元素,它基於容器封裝了一些高級特性,是一個更高層次的概念。當容器被封裝在一個服務中時,我們稱之為一個任務或一個副本,服務中增加了諸如擴縮容、滾動升級以及簡單回滾等特性。
推薦學習:《docker影片教學》
以上是docker集群有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!