快捷搜索:
来自 67677新澳门手机版 2019-10-06 20:59 的文章
当前位置: 67677新澳门手机版 > 67677新澳门手机版 > 正文

swarm搭建docker高可用集群

回到目录

Swarm概念

  Swarm是Docker集团推出的用来保管docker集群,它将一批Docker宿主机形成三个十足的,设想的主机。Swarm使用正规的Docker API接口作为其前端访问入口,换言之,种种样式的Docker Client(docker client in Go, docker_py, docker等)均能够直接与Swarm通讯。Swarm差不离一切用go语言来成功支付,Swarm0.2发表,比较0.1版本,0.2本子扩充了一个新的战略来调整集群中的容器,使得在可用的节点上传来它们,以及协助更加多的Docker命令以及集群驱动。
  Swarm deamon只是二个调整器(Scheduler)加路由器(router),Swarm本人不运维容器,它只是承受docker顾客端发送过来的央求,调整适合的节点来运作容器,那表示,即便Swarm由于有些原因挂掉了,集群中的节点也会照常运作,当Swarm重新上涨运转之后,它会征集重新建立集群新闻.

Swarm结构图

67677新澳门手机版 1

Swarm的为主命令

docker node 用来展现集群的节点,暗中同意创设刻独有三个节点,当然也就谈不上高可用了,能够采用docker node --help来查阅全数node参数

67677新澳门手机版 2

集群发轫化 docker swarm init 

67677新澳门手机版 3

当已经被开首化后,就无法重复执行这些操作了,使用docker node ls 来查看刚创建的集群

67677新澳门手机版 ,集群中的管理节点和办事节点功效图

67677新澳门手机版 4

 

增进期处理理节点 docker swarm join

Docker Swarm 命令中还索要增添一些抉择:

* join:表澳优个新的节点将被加多进 Swarm

* –manager:注脚节点的属性(manager vs worker)

* –listen-addr:让三个新加上的节点能够访问 Swarm 内的其他节点

* 最终的参数就是第一管制节点的地点(即这一命令将被送到的那多少个节点)

*注意:由于 –auto-accept manager 选项会在 Swarm 开头化的进度中被提供,所以第二管理节点会被机关接受。若无这一选项,那么第二管制节点供给被第一管理节点手动接受。*

$ MANAGER2_IP=$(docker-machine ip manager2)
docker-machine ssh manager2 docker swarm join --manager --listen-addr $MANAGER2_IP:2377 $MANAGER1_IP:2377

Swarn安顿时选拔的剧本,来自网络

下边是一小段用来创立 Docker 主机并布置 Swarm 的 Shell 脚本。当然了,管理/工作节点的数字都以能够私下更动的。
潜心:创立四个管理节点和七个干活节点,仅仅是用来作示范。在工产中,大家恐怕必要在集群里搭建 3 个管理节点和 5 个干活节点。

# Define the number of managers/workers
MANAGER=3
WORKER=5

# Create the Docker hosts
for i in $(seq 1 $MANAGER); do docker-machine create --driver virtualbox manager$i; done
for i in $(seq 1 $WORKER); do docker-machine create --driver virtualbox worker$i; done

# Init the swarm
docker-machine ssh manager1 docker swarm init --auto-accept manager --auto-accept worker --listen-addr $(docker-machine ip manager1):2377

# Add additional manager(s)
for i in $(seq 2 $MANAGER); do docker-machine ssh manager$i docker swarm join --manager --listen-addr $(docker-machine ip manager$i):2377 $(docker-machine ip manager1):2377; done

# Add workers
for i in $(seq 1 $WORKER); do docker-machine ssh worker$i docker swarm join --listen-addr $(docker-machine ip worker$i):2377 $(docker-machine ip manager1):2377; done

对此上边文章中,只关乎了集群,而从不谈起如何去选取,在创立集群后,服务的布局大家得以用

docker stack deploy  -c test.yml test

上面给出本人写的三个劳务,版本3的

version: "3"

services:
  loggerapi:
    image: logger.api
    build:
      context: ./src/Logger.Api
      dockerfile: Dockerfile
    ports:
      - "5000:80"
    networks:
      - ingress

 loggermanager:
    image: logger.manager
    build:
      context: ./src/Logger.Manager
      dockerfile: Dockerfile
    ports:
      - "5050:80"
    networks:
      - ingress

networks:
  ingress:

此间有个服务要专一,服务的名号相对不可能有一点,如logger.manager那是荒谬的!

67677新澳门手机版 5

来构建八个劳动,同有的时候候能够选用docker service来查看已经运营的劳务!

再有有些要留神,yml在张开v3版后,不再援助build,也正是说,你须要先把镜像建构好才行!

67677新澳门手机版 6

 

回来目录

 

本文由67677新澳门手机版发布于67677新澳门手机版,转载请注明出处:swarm搭建docker高可用集群

关键词: