介绍
Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令。目前,Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具。它可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。
Swarm 是目前 Docker 官方唯一指定(绑定)的集群管理工具。Docker 1.12 内嵌了 swarm mode 集群管理模式。
准备
Docker 安装及配置
实现docker swarm集群需要多台服务器实现集群的,这里我准备了2台服务器,且操作系统都是 raspbian-stretch-lite,IP分别是:
2台服务器上分别执行以下命令,安装docker
配置apt
将文件里的默认的官方软件源用# 注释掉,添加以下:
将文件里的默认的官方软件源用# 注释掉,添加以下:
添加docker apt源
配置Docker官方APT GPG key
输出对比是否是一致的:
更新apt
安装docker
docker配置国内镜像
在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
docker 命令
swarm 配置
docker 已内置swarm,无需再手动pull安装
我们有2个服务器作为集群的2个节点,其中,ser1, manager节点,ser2 作为worker节点
初始化集群
语法:
Options:
示例
添加节点
Options
添加manager节点
ser1已经是管理节点,这里介绍如何添加另一个管理节点。swarm支持多个管理节点,但是只会有一个leader。
首先要获取manager的token,在ser1上执行以下命令:
获取到manager token,然后执行以下命令,将ser2服务器作为manager节点加入集群
worker节点
首先要获取worker的token,在ser1上执行以下命令:
获取到worker token,然后执行以下命令,将ser2服务器作为worker节点加入集群:
查看节点
以下命令只能在manager节点上执行
查出集群的节点列表
语法
Options
–filter , -f : 根据条件筛选查询结果
示例
修改节点
以下命令只能在manager节点上执行
节点降级
将manager节点降为worker
语法
示例
节点升级
将worker节点提升为manager
语法
示例
修改节点参数
语法
Options
示例
退出节点
docker node rm
从集群中移除一个或多个节点(manager 节点执行)
语法
Options
示例
docker swarm leave
退出集群(需要退出的节点执行)
语法
Options
示例
应用部署
创建服务
语法
Options
示例
创建一个docker网络
创建一个2个副本的redis service
注意:rpi是arm架构的,只能使用arm docker镜像,现在docker官方已经有了arm镜像
arm32v7
arm32v6
修改服务
修改服务参数
语法
Options
示例
修改任务数量
虽然通过docker service update命令也可以修改任务数量,但是docker还提供了一个修改任务数量的命令。
该命令可以修改一个或多个服务的任务数量
语法
示例
查看服务
查看服务列表
manager节点执行
语法
Options
示例
查看任务列表
manager执行,可查看一个或多个服务的任务列表
语法
Options
示例
查看服务详情
manager执行,可查看一个或多个服务的详细情况
语法
Options
示例
删除服务
manager 执行,删除一个或多个服务
语法
示例
查看服务日志
manager执行,查看服务或任务的日志
语法
Options
示例
使用portainer管理docker swarm集群
Portainer是个轻量级的Docker管理面板,和Rancher这种重量级选手没法比,Portainer倾向于单机的管理(后来发现能够添加多个单机节点切换着管理),当然,在Docker搞出Swarm之后Portainer也借此实现了集群管理。
本文使用的portainer镜像为portainer/portainer:linux-arm-1.17.0
推荐阅读:
1、https://blog.51cto.com/14320361/2462419