Swarm/Docker

今天复习一下Swarm的基本知识,

Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些。

Swarm特点如下:

与Docker Engine高度集成,不需要额外插件,直接通过CLI创建Swarm Cluster.

e.g. >docker swarm init

去中性化设计,在Swarm集群中有2中节点:manager和worker,manager负责管理集群也可以对外提供服务,worker对外提供服务,在一个集群中,manager是可以存在多个,任何一个worker可以提升为manager,任何一个manager也可以降级为worker,通用的集群架构如下:

扩容和缩容。使用Swarm可以很方便创建多个instance. 下面的命令将[servicename]扩展为5个instance. 这5个实例将随机分配到不同的worker上面。

e.g. docker service scale [servicename]=5

保持实际状态和期望状态一致,但设置的服务副本是5时,如果其中有2个instances crash,则swarm会从可用的worker上重新启动2个新的instance.保持容器数量和期望值一致

多主机网络,我们可以为指定一个Overlay网络,Swarm Manager在给定的Overlay网络中为Docker容器自动地分配IP地址,实际是一个虚拟IP,

服务方向,Swarm Manager 为每一个Service指定一个唯一的DNS name,并且进行负载均衡,Service之间可以通过name互相之间进行认识

负载均衡,证书安全,滚动升级等等。。。

Swarm实战

初始化

>docker swarm init

加入swarm cluster

> docker swarm init # in nodeA

> docker swarm join-token manager # in nodeA

> input token into nodeB, node

3. 查看swarm 节点

>docker node ls

>docker node ps $(docker node ls -q)

5.创建network

>docker network create --driver overlay rabnet

6. 创建Service

>docker service create --name consul --replicas 1 -p 8400:8400 -p 8500:8500 -p 8600:53 --network rabnet consul

7. 扩容service

>docker service scale consul=5

8. 暂停service,Swarm中没有暂停,但是只需要将instance个数设置为0即可

>docker service scale consul=0

9. 删除service

>docker service rm consul

Swarm 实例分析

>docker service create --name haproxy --replicas 1 \

--network rabnet \

-p 18001:18000 \

--mount type=bind,source=/haproxy.cfg,destination=/usr/haproxy.cfg \

haproxy:latest

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180428G0IO0G00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券