怎么理解Docker中的Swarm,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Swarm是去中心化的,并集成进了Docker Engine,通过Docker CLI管理。
swarm
集群包含两类节点
Manager Node
—— 负责调度Task(不推荐超过7个,其有两种状态:leader、reachable,集群操作需在管理节点)
Worker Node
—— 接受Manager Node调度并指派的Task
每个swarm node
的availability
包括:
Active:接受task
Pause:不接受task,已有task仍运转
Drain:不接受task,已有task被交接
通过routing mesh策略(基于lvs),swarm集群所有节点都会监听服务端口(没有启动服务的节点会自动将流量路由到服务驻留节点)
集群内服务开放到外部端口后,节点由preparing转为running状态
一个集群节点上可以驻留多个重复服务
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编写
# 转入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 网络名 #监控网络
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。