swarm 配置说明

摘要:
swarmmanagernode的管理可以使用haproxy为多个管理节点创建高可用性解决方案。Raft协议用于确保管理节点的数据一致性。容错点数为(n-1)/2常见管理节点操作:将managernode设置为仅提供管理,而不是作为工作节点使用dockernodeupdate--availabilitydrainmanager节点主机名添加标签dockernode update--label add key name=value为节点设置标签,一个节点可以有多个标签。
managernode192.168.0.11
workernode192.168.0.12
安装上docker环境
yuminstallwget-y
wgethttps://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo-O/etc/yum.repos.d/docker-ce.repo
yum-yinstalldocker-ce-18.06.1.ce-3.el7
systemctlenabledocker&&systemctlstartdocker
docker--version
swarn下的命令集,可以使用--help逐层查看
dockerswarm--help
Commands:
caDisplayandrotatetherootCA
initInitializeaswarm
joinJoinaswarmasanodeand/ormanager
join-tokenManagejointokens
leaveLeavetheswarm
unlockUnlockswarm
unlock-keyManagetheunlockkey
updateUpdatetheswarm
部署swarmmanager
dockerswarminit--advertise-addr192.168.0.11
执行后给出worker节点加入当前manager下的命令,也可以通过dockerswarmjoin-tokenworker查看下面信息。
dockerswarmjoin--tokenSWMTKN-1-3vgownewoyrqequep2a3y6cawjurd27kix8***************-b5iregazi33c107qeivgkdwc0192.168.0.11:2377
dockerinfo#可以查看当前docker的swarm节下面的信息
Swarm:active
NodeID:hjy4pruqeygmtrhktr4t8rmph
IsManager:true
ClusterID:6tfy8npit0ekv55scx0rwaq40
Managers:1
Nodes:1
DefaultAddressPool:10.0.0.0/8
SubnetSize:24
DataPathPort:4789
Orchestration:
TaskHistoryRetentionLimit:5
dockernodels查看当前swarm下的节点
AVAILABILITY三种状态说明:
active可被指派task
pasue不可被指派task,但是节点中的已存在task正常运行
drain不可被指派task,且节点中的已存在task将调度到其他的worker节点运行
通过dockerswarmjoin-tokenwoker查看加入命令,然后在worker执行命令,加入swarm。
管理swarmmanagernode
可以使用haproxy来做多managenode的高可用方案,Raft协议用来保证管理节点的数据一致性,容错点数量是(n-1)/2
常见的管理节点的操作:
设置managernode只提供管理,不作为worker节点使用
dockernodeupdate--availabilitydrainmanager节点主机名
添加标签
dockernodeupdate--label-add键名称=值
为节点设置标签标记,一个节点可以多个标签。
dockernodeupdate--label-addfoo--label-addbarworker1
为节点指定类型标签,来标识调度程序如何部署到哪个节点
dockernodeupdate--label-addtyep=queueworker1
提权到manage组
dockernodepromoteworker1
降权
dockernodedemoteworkre1
manager节点要退出swarm集群,在manager机器上操作
dockerswarmnodeleave
若集群中存在其他workernode如果manager要退出swarm可以强制退出
dockerswarmnodeleave--force
worker节点要退出swarm,在woker机器上操作
dockerswarmnodeleave
其他管理命令
dockernodedemote从群集(swarm)管理器中降级一个或多个节点
dockernodeinspect显示一个或多个节点的详细信息
dockernodels列出群集(swarm)中的节点
dockernodepromote将一个或多个节点推入到群集管理器中
dockernodeps列出在一个或多个节点上运行的任务,默认为当前节点
dockernoderm从群集(swarm)删除一个或多个节点
dockernodeupdate更新一个节点
–availability节点的可用性(有效/暂停/耗尽)
–label-add添加或更新节点标签(key=value)
–label-rm删除节点标签(如果存在)
–role节点的作用(worker/manager)
管理服务(在managernode上完成)
dockerservicecreate--replicas2--namemyredisredis
#创建2个名为myredis的容器,源镜像为redis
dockerservicels
#查看已经部署了的服务
dockerservicepsmyredis
#查看服务的详细信息
dockerservicecreate--namehelloworld
--envMYVAR=myvalue
--workdir/tmp
--usermy_user
alpinepingdocker.com
#enc设置化境变量,workdir设置工作目录,user设置用户信息
扩容缩容服务
dockerservicescale服务名=服务task总数
例如dockerservicescalemyredis=3从之前的2个扩容到3个
dockerservicescalemyredis=1扩容到3个以后,再缩容到1个。
删除服务
dockerservicermmyredis
滚动更新
dockerservicecreate
--replicas3
--nameredis
--update-delay10s
redis:3.0.6
#每成功部署一个,间隔十秒后再部署下一个,更新失败则调度器停止
dockerserviceupdate--imagesredis:3.0.7redis使用新版本redis来升级当前版本。
添加overlay网络
dockernetworkcreate--driveroverlaymynetwork
#创建名字为mynetwork的网络,在manager上操作
dockerservicecreate
--replicas4
--networkmynetwokr
--namemyweb
nginx
#指定mynetwork网络下创建4份名字叫myweb的服务,源镜像用nginx
爬坑问题
将worker提权之后,会导致status为down,重启只有dockernodermworker1然后重新加入。

免责声明:文章转载自《swarm 配置说明》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用Java实现二叉查找树比特币挖矿详细图文教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

「初级篇」跟我一起学docker(14)--docker swarm的使用

1.什么是Docker Swarm? 容器集群管理工具。 通过docker swarm可以将多台机器连接在一起,通过swarm的调度可以服务的多台机器的部署,服务的伸缩。 docker-swarm的场景因为需要多台docker虚拟机,在虚拟机中创建 docker-machine会发现一个很重要的问题,无法创建多个docker的虚拟器,虚拟主机报错 "Wra...

Docker Swarm volume 数据持久化

Docker Swarm volume 数据持久化 volume 是将宿主级的目录映射到容器中,以实现数据持久化。 可以用两种方式来实现: volume 默认模式:工作节点宿主机数据同步到容器内。 volume NFS 共享存储模式:管理节点宿主同步到工作节点宿主,工作节点宿主同步到容器。 环境: 系统:Centos 7.4 x64 应用版本:Doc...

docker集中化管理平台--shipyard部署

Shipyard是建立在docker集群管理工具Citadel之上的可以管理容器、主机等资源的web图形化工具,包括core和extension两个版本,core即shipyard主要是把多个 host上的 containers 统一管理(支持跨越多个host),extension即shipyard-extensions添加了应用路由和负载均衡、集中化日志...

Docker学习—Swarm

前言:   前一篇《Docker学习—Machine》中对Machine 进行了学习,本篇继续学习Swarm,那么Swarm是什么呢,有什么用呢?接下来一步步了解。 一、什么是Docker-Swarm?  Swarm是使用swarmkit项目构建的嵌入在Docker 引擎中的集群管理和编排功能的工具包,可以直接在docker中使用  一个集群由多个Dock...

设计生成自动化流水线

现在已经有很多成熟的生成流水线了,如Azure DevOps,直接在界面中配置好即可,相当便捷,生成流水线的工作方式、工作过程也可以简单了解,我在空闲时间搭建了一个简单生成流水线旨在巩固个人对生成流水线的理解。 一、生成流水线设计图 平时,在腾讯云、阿里云搞活动时薅了点羊毛,搞了几天便宜的服务器,不能让这些服务器闲置了,也借此来试试搭建一条流水线,目的是...

Docker Swarm 常用命令

# 管理配置文件 docker config     # 查看已创建配置文件     - docker config ls     # 将已有配置文件添加到docker配置文件中     - docker config create docker 配置文件名 本地配置文件  # 管理swarm节点 docker node     # 查看集群中的...