怎么理解Docker中的Swarm

怎么理解Docker中的Swarm,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

十年的尼泸西网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整尼泸西建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“尼泸西网站设计”,“尼泸西网站推广”以来,每个客户项目都认真落实执行。

swarm基本概念

  • Swarm是去中心化的,并集成进了Docker Engine,通过Docker CLI管理。

  • swarm集群包含两类节点

    • Manager Node —— 负责调度Task(不推荐超过7个,其有两种状态:leader、reachable,集群操作需在管理节点)

    • Worker Node —— 接受Manager Node调度并指派的Task

  • 每个swarm nodeavailability包括:

    • Active:接受task

    • Pause:不接受task,已有task仍运转

    • Drain:不接受task,已有task被交接

  • 通过routing mesh策略(基于lvs),swarm集群所有节点都会监听服务端口(没有启动服务的节点会自动将流量路由到服务驻留节点)

  • 集群内服务开放到外部端口后,节点由preparing转为running状态

  • 一个集群节点上可以驻留多个重复服务

swarm变迁

  • Docker1.6引入Swarm

    • 独立于Docker engine

    • 使用Docker CLI

  • Docker 1.12前几周发布了Swarm Kit

    • 使用自己的CLI(swarmd负责管理,swarmctl用于控制)

    • 是Swarm mode的基础

  • Docker 1.12发布了Swarm Mode(功能较完整的容器编排工具)

    • 集成到了Docker engine中(docker swarm子命令)

    • 使用Docker CLI,引入服务的概念

    • 基于Swarmkit编写

构建swarm集群

# 转入SwarmMode(当前机即作为集群管理节点)
docker swarm init --advertise-addr Manager节点ip:端口

# 新建token
docker swarm join-token worker|manager

# node加入集群成为一个工作副本
docker swarm join --token 令牌 Manager节点ip:端口

# 查看集群节点
docker node ls

# 检查指定节点
docker node inspect self|NODE

# 节点状态变更
docker node update --availability drain manager # 设置Manager Node只具有管理功能

# 节点打标签
docker node update --label-add 键名称=值

# 节点提权/降权
docker node promote 节点 # 升级为manager node
docker node demote 节点 # 降级为worker node

# 节点退出集群
docker swarm node leave [--force]

构建集群网络

  • 集群构建时,节点通信默认2377端口

  • 集群负载均衡网络的服务发现工作在端口:

    • 7946 TCP/UDP:集群的服务发现

    • 4789 UDP:集群服务的路由网络

docker network create --driver overlay 网络名 #创建网络(网络是隔离和安全加密的,同一网络节点才能互访)
docker network ls #列表网络
docker network inspect 网络名 #监控网络

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


当前标题:怎么理解Docker中的Swarm
URL分享:http://scyanting.com/article/jhjies.html