如何配置一個 Docker Swarm 原生叢集
嗨,大家好。今天我們來學一學Swarm相關的內容吧,我們將學習通過Swarm來建立Docker原生叢集。Docker Swarm是用於Docker的原生叢集專案,它可以將一個Docker主機池轉換成單個的虛擬主機。Swarm工作於標準的Docker API,所以任何可以和Docker守護程式通訊的工具都可以使用Swarm來透明地伸縮到多個主機上。就像其它Docker專案一樣,Swarm遵循“內建電池,並可拆卸”的原則(LCTT 譯註:batteries included,內建電池原來是 Python 圈裡面對 Python 的一種讚譽,指自給自足,無需外求的豐富環境;but removable,並可拆卸應該指的是非強制耦合)。它附帶有一個開箱即用的簡單的後端排程程式,而且作為初始開發套件,也為其開發了一個可插拔不同後端的API。其目標在於為一些簡單的使用情況提供一個平滑的、開箱即用的體驗,並且它允許切換為更強大的後端,如Mesos,以用於大規模生產環境部署。Swarm配置和使用極其簡單。
這裡給大家提供Swarm 0.2開箱的即用一些特性。
- Swarm 0.2.0大約85%與Docker引擎相容。
- 它支援資源管理。
- 它具有一些帶有限制和類同功能的高階排程特性。
- 它支援多個發現後端(hubs,consul,etcd,zookeeper)
- 它使用TLS加密方法進行安全通訊和驗證。
那麼,我們來看一看Swarm的一些相當簡單而簡用的使用步驟吧。
1. 執行Swarm的先決條件
我們必須在所有節點安裝Docker 1.4.0或更高版本。雖然各個節點的IP地址不需要要公共地址,但是Swarm管理器必須可以通過網路訪問各個節點。
注意:Swarm當前還處於beta版本,因此功能特性等還有可能發生改變,我們不推薦你在生產環境中使用。
2. 建立Swarm叢集
現在,我們將通過執行下面的命令來建立Swarm叢集。各個節點都將執行一個swarm節點代理,該代理會註冊、監控相關的Docker守護程式,並更新發現後端獲取的節點狀態。下面的命令會返回一個唯一的叢集ID標記,在啟動節點上的Swarm代理時會用到它。
在叢集管理器上執行:
# docker run swarm create
3. 啟動各個節點上的Docker守護程式
我們需要登入進我們將用來建立叢集的每個節點,並在其上使用-H標記啟動Docker守護程式。它會保證Swarm管理器能夠通過TCP訪問到各個節點上的Docker遠端API。要啟動Docker守護程式,我們需要在各個節點內部執行以下命令。
# docker -H tcp://0.0.0.0:2375 -d
4. 新增節點
在啟用Docker守護程式後,我們需要新增Swarm節點到發現服務,我們必須確保節點IP可從Swarm管理器訪問到。要完成該操作,我們需要在各個節點上執行以下命令。
# docker run -d swarm join --addr=<node_ip>:2375 token://<cluster_id>
注意:我們需要用步驟2中獲取到的節點IP地址和叢集ID替換這裡的<node_ip>和<cluster_id>。
5. 開啟Swarm管理器
現在,由於我們已經獲得了連線到叢集的節點,我們將啟動swarm管理器。我們需要在叢集管理器中執行以下命令。
# docker run -d -p <swarm_port>:2375 swarm manage token://<cluster_id>
6. 檢查配置
一旦管理執行起來後,我們可以通過執行以下命令來檢查配置。
# docker -H tcp://<manager_ip:manager_port> info
注意:我們需要替換<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 ...
8. 監聽叢集中的節點
我們可以使用swarm list命令來獲取所有執行中節點的列表。
# docker run --rm swarm list token://<cluster_id>
尾聲
Swarm真的是一個有著相當不錯的功能的docker,它可以用於建立和管理叢集。它相當易於配置和使用,當我們在它上面使用限制器和類同器時它更為出色。高階排程程式是一個相當不錯的特性,它可以應用過濾器來通過埠、標籤、健康狀況來排除節點,並且它使用策略來挑選最佳節點。那麼,如果你有任何問題、評論、反饋,請在下面的評論框中寫出來吧,好讓我們知道哪些材料需要補充或改進。謝謝大家了!盡情享受吧!
相關文章
- Docker Swarm:叢集DockerSwarm
- Docker Swarm叢集DockerSwarm
- Docker Swarm 叢集搭建DockerSwarm
- Docker Swarm叢集初探DockerSwarm
- Docker Swarm 叢集搭建教程DockerSwarm
- Docker swarm叢集搭建教程DockerSwarm
- docker 1.12 版本 docker swarm 叢集DockerSwarm
- Docker Swarm 叢集搭建實踐DockerSwarm
- Docker + Swarm + etcd 叢集搭建DockerSwarm
- 用docker-machine建立Docker Swarm叢集DockerMacSwarm
- Docker Swarm:建立伺服器叢集DockerSwarm伺服器
- 095、如何建立Swarm叢集?(Swarm02)Swarm
- 使用Docker Swarm搭建分散式爬蟲叢集DockerSwarm分散式爬蟲
- Swirl:Docker Swarm 叢集管理的新選擇DockerSwarm
- Docker Elasticsearch 叢集配置DockerElasticsearch
- Docker 學習筆記(第十集:docker 叢集管理工具 swarm )Docker筆記Swarm
- 使用Docker Swarm快速搭建與部署你的服務叢集DockerSwarm
- docker 配置 Mysql主從叢集DockerMySql
- 『中級篇』在docker-swarm叢集裡透過serivce部署worDockerSwarm
- 用 Docker swarm 快速部署分散式圖資料庫 Nebula Graph 叢集DockerSwarm分散式資料庫
- swarm mode叢集之service分組Swarm
- [第十五篇]——Swarm 叢集管理Swarm
- Docker Swarm叢集中的服務發現DockerSwarm
- 用 docker-compose 搭建一個 rabbitmq 叢集DockerMQ
- swarm mode叢集搭建及簡單概念Swarm
- Docker Swarm or Kubernetes ? Docker 叢集技術的楚漢爭霸!|航海日誌 Vol.18DockerSwarm
- Docker Swarm + Harbor + Portainer 打造高可用,高伸縮,叢集自動化部署,更新。DockerSwarmAI
- (精華)2020年10月3日 微服務 Docker-叢集(swarm)微服務DockerSwarm
- kubeconfig 多個叢集配置 如何切換
- 【Docker】 SwarmDockerSwarm
- 搭建Redis原生叢集Redis
- 手把手教你用Docker部署一個MongoDB叢集DockerMongoDB
- M1-Mac中docker的redis叢集配置MacDockerRedis
- 8天入門docker系列 —— 第八天 讓程式跑在swarm叢集上DockerSwarm
- Docker Swarm modeDockerSwarm
- 一個4節點Hadoop叢集的配置示例Hadoop
- Docker搭建ELK叢集Docker
- docker部署mysql叢集DockerMySql