如何配置一個 Docker Swarm 原生集群

jopen 9年前發布 | 16K 次閱讀 Docker 分布式/云計算/大數據

嗨,大家好。今天我們來學一學Swarm相關的內容吧,我們將學習通過Swarm來創建Docker原生集群。Docker Swarm是用于Docker的原生集群項目,它可以將一個Docker主機池轉換成單個的虛擬主機。Swarm工作于標準的Docker API,所以任何可以和Docker守護進程通信的工具都可以使用Swarm來透明地伸縮到多個主機上。就像其它Docker項目一樣,Swarm遵循“內置電池,并可拆卸”的原則(LCTT 譯注:batteries included,內置電池原來是 Python 圈里面對 Python 的一種贊譽,指自給自足,無需外求的豐富環境;but removable,并可拆卸應該指的是非強制耦合)。它附帶有一個開箱即用的簡單的后端調度程序,而且作為初始開發套件,也為其開發了一個可插拔不同后端的API。其目標在于為一些簡單的使用情況提供一個平滑的、開箱即用的體驗,并且它允許切換為更強大的后端,如Mesos,以用于大規模生產環境部署。Swarm配置和使用極其簡單。

如何配置一個 Docker Swarm 原生集群

這里給大家提供Swarm 0.2開箱的即用一些特性。

  1. Swarm 0.2.0大約85%與Docker引擎兼容。
  2. 它支持資源管理。
  3. 它具有一些帶有限制和類同功能的高級調度特性。
  4. 它支持多個發現后端(hubs,consul,etcd,zookeeper)
  5. 它使用TLS加密方法進行安全通信和驗證。
  6. </ol>

    那么,我們來看一看Swarm的一些相當簡單而簡用的使用步驟吧。

    1. 運行Swarm的先決條件

    我們必須在所有節點安裝Docker 1.4.0或更高版本。雖然各個節點的IP地址不需要要公共地址,但是Swarm管理器必須可以通過網絡訪問各個節點。

    注意:Swarm當前還處于beta版本,因此功能特性等還有可能發生改變,我們不推薦你在生產環境中使用。

    2. 創建Swarm集群

    現在,我們將通過運行下面的命令來創建Swarm集群。各個節點都將運行一個swarm節點代理,該代理會注冊、監控相關的Docker守護進程,并更新發現后端獲取的節點狀態。下面的命令會返回一個唯一的集群ID標記,在啟動節點上的Swarm代理時會用到它。

    在集群管理器上運行:

    # docker run swarm create

    如何配置一個 Docker Swarm 原生集群

    3. 啟動各個節點上的Docker守護進程

    我們需要登錄進我們將用來創建集群的每個節點,并在其上使用-H標記啟動Docker守護進程。它會保證Swarm管理器能夠通過TCP訪問到各個節點上的Docker遠程API。要啟動Docker守護進程,我們需要在各個節點內部運行以下命令。

    # docker -H tcp://0.0.0.0:2375 -d

    如何配置一個 Docker Swarm 原生集群

    4. 添加節點

    在啟用Docker守護進程后,我們需要添加Swarm節點到發現服務,我們必須確保節點IP可從Swarm管理器訪問到。要完成該操作,我們需要在各個節點上運行以下命令。

    # docker run -d swarm join --addr=<node_ip>:2375 token://<cluster_id>

    如何配置一個 Docker Swarm 原生集群

    注意:我們需要用步驟2中獲取到的節點IP地址和集群ID替換這里的<node_ip>和<cluster_id>。

    5. 開啟Swarm管理器

    現在,由于我們已經獲得了連接到集群的節點,我們將啟動swarm管理器。我們需要在集群管理器中運行以下命令。

    # docker run -d -p <swarm_port>:2375 swarm manage token://<cluster_id>

    如何配置一個 Docker Swarm 原生集群

    6. 檢查配置

    一旦管理運行起來后,我們可以通過運行以下命令來檢查配置。

    # docker -H tcp://<manager_ip:manager_port> info

    如何配置一個 Docker Swarm 原生集群

    注意:我們需要替換<manager_ip:manager_port>為運行swarm管理器的主機的IP地址和端口。

    7. 使用docker CLI來訪問節點

    在一切都像上面說得那樣完美地完成后,這一部分是Docker Swarm最為重要的部分。我們可以使用Docker CLI來訪問節點,并在節點上運行容器。

    # docker -H tcp://<manager_ip:manager_port> info

    docker -H tcp://<manager_ip:manager_port> run ...</pre>

    8. 監聽集群中的節點

    我們可以使用swarm list命令來獲取所有運行中節點的列表。

    # docker run --rm swarm list token://<cluster_id>

    如何配置一個 Docker Swarm 原生集群

    尾聲

    Swarm真的是一個有著相當不錯的功能的docker,它可以用于創建和管理集群。它相當易于配置和使用,當我們在它上面使用限制器和類同器時它更為出色。高級調度程序是一個相當不錯的特性,它可以應用過濾器來通過端口、標簽、健康狀況來排除節點,并且它使用策略來挑選最佳節點。那么,如果你有任何問題、評論、反饋,請在下面的評論框中寫出來吧,好讓我們知道哪些材料需要補充或改進。謝謝大家了!盡情享受吧 :-)


    via: http://linoxide.com/linux-how-to/configure-swarm-clustering-docker/

    作者:Arun Pyasi 譯者:GOLinux 校對:wxy

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

    來源: https://linux.cn/article-5915-1.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!