docker swarm集群

第一步:安装swarm集群

192.168.132.131----->(manger1,node)
192.168.132.132----->(manger2,node)
192.168.132.133----->(node)
192.168.132.135----->(node)

manger1 主机

启动 Consel 服务后端

#启动 consel 服务容器,映射到主机的 8500 端口。
$ docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap

启动主管理节点

启动一个主管理节点,映射到主机的 4000 端口,并获取所在主机地址为 <manager0_ip>。其中 4000 端口是 Swarm 管理器的默认监听端口,用户也可以指定映射为其它端口。

$ docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise <manager0_ip>:4000 consul://<consul_ip>:8500  #manager0 本机ip

manger2 主机

启动备用管理节点

$ docker run -d swarm manage -H :4000 --replication --advertise <manager1_ip>:4000 consul://<consul_ip>:8500    #manager1 本机ip

所有node节点

启动工作节点

docker run -d swarm join --advertise=<node_ip>:2375 consul://<consul_ip>:8500    #工作节点ip

测试:

docker -H 192.168.132.131:4000 info

docker -H 192.168.132.132:4000 info

关闭 manger1的swarm 管理节点,去管理节点2上 docker -H 192.168.132.132:4000 info 发现 role 变为 primary

安装shipyard

Shipyard是一款开源的图形化的Docker管理工具,官方有自动安装脚本,使用非常方便。复制、粘贴、使用,就这么简单。先不研究他是如何实现的,安装使用起来再说。

所有操作均在manger1节点

# docker pull rethinkdb
# docker pull microbox/etcd
# docker pull shipyard/docker-proxy
# docker pull swarm
# docker pull shipyard/shipyard #1. 数据存储(rethinkdb)
docker run -ti -d --name shipyard-rethinkdb rethinkdb #2.Docker代理服务(shipyard/docker-proxy)
docker run -ti -d -p 2376:2375 --hostname=$HOSTNAME --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 shipyard/docker-proxy #3 启动shipyard
docker run -ti -d --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8083:8080 shipyard/shipyard server -d tcp://swarm:4000 注解:
tcp://swarm:4000 表示swarm集群的管理地址(端口为搭建集群时的管理端口) --link shipyard-swarm-manager:swarm
shipyard-swarm-manager 表示的是swarm manger的容器名称 #然后访问:http://manger1_ip:8083
默认用户名/密码 admin/shipyard

注解:
10.211.55.20:2375 为node节点ip和端口
10.211.55.20:4001 为本地管理端口(及管理节点的ip和端口,类似于consul服务)

另一种方法安装

$ curl -s https://shipyard-project.com/deploy | bash -s

ip:8080 admin shipyard

etcd 服务 添加集群方法:

管理节点:(etcd自动发现,与consul自动发现功能相同)

#启动发现服务
docker run -ti -d -p 4001:4001 -p 7001:7001 --name shipyard-discovery microbox/etcd -name discovery 类似于 consul的8500端口 #启动管理节点:
docker run -ti -d --name shipyard-swarm-manager swarm manage --host tcp://0.0.0.0:3375 etcd://10.211.55.20:4001 10.211.55.20为本机ip,类似于consul服务ip和端口,tcp://0.0.0.0:3375 为管理节点的管理端口

node节点:添加节点到集群

docker run -ti -d --name shipyard-swarm-agent swarm join --addr 10.211.55.20:2375 etcd://10.211.55.20:4001

shipyard 管理swarm集群(附etcd发现服务方法)的更多相关文章

  1. 如何使用Istio 1.6管理多集群中的微服务?

    假如你正在一家典型的企业里工作,需要与多个团队一起工作,并为客户提供一个独立的软件,组成一个应用程序.你的团队遵循微服务架构,并拥有由多个Kubernetes集群组成的广泛基础设施. 由于微服务分布在 ...

  2. docker + swarm 集群

    docker + swarm 集群 导读 Swarm是Docker公司在2014年12月初新发布的容器管理工具.和Swarm一起发布的Docker管理工具还有Machine以及Compose.Swar ...

  3. Docker swarm集群增加节点和删除节点

    Docker swarm集群增加节点 docker swarm初始化 docker swarm init docker swarm 增加节点 在已经初始化的机器上执行:# docker swarm j ...

  4. 通过docker-machine和etcd部署docker swarm集群

    本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使 ...

  5. 003.etcd集群部署-静态发现

    一 etcd集群概述 1.1 概述 静态启动etcd集群要求每个成员都知道集群中的另一个成员.Etcd运行在集群的每个coreos节点上,可以保证coreos集群的稳定,可靠的运行.当集群网络出现动荡 ...

  6. docker swarm集群搭建及使用Portainer、shipyard

    一.规划 1.swarm01作为manager节点,swarm02和swarm03作为worker节点. # cat /etc/hosts 127.0.0.1   localhost 192.168. ...

  7. 004.etcd集群部署-动态发现

    一 etcd发现简介 1.1 需求背景 在实际环境中,集群成员的ip可能不会提前知道.如使用dhcp自动获取的情况,在这些情况下,使用自动发现来引导etcdetcd集群,而不是指定静态配置,这个过程被 ...

  8. 非节点主机通过内网远程管理docker swarm集群

    这是今天使用 docker swarm 遇到的一个问题,终于在睡觉前解决了,在这篇随笔中记录一下. 在 docker swarm 集群的 manager 节点上用 docker cli 命令可以正常管 ...

  9. Docker Swarm——集群管理

    前言 之前在总结docker machine的时候,当时对docker理解还不够深入,甚至还不知道 docker machine 与 docker swarm 的区别. 在查阅资料以及官方文档之后,今 ...

随机推荐

  1. 【数模】day06-数理统计I

    数理统计. 以样本推断总体,进而用总体研究问题. 分两部分学习,第一部分是基础统计.参数估计.假设检验以及bootstrap方法. 1. 基础统计 假设有如下数据: 要做频数表.直方图.折线图.饼状图 ...

  2. 彻底弄懂 HTTP 缓存机制及原理 | 干货

    来源:www.cnblogs.com/chenqf/p/6386163.html 前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个 ...

  3. 常用模块collections

    collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...

  4. node.js 运行机制与简单使用

    一.hello world 1.引入 required 模块 2.创建服务器 3.接收请求与响应请求 var http = require('http'); // 载入http模块 http.crea ...

  5. WEB请求处理

    https://blog.csdn.net/bpingchang/article/details/51328941

  6. IDEA 不识别的MAVEN 项目应如何处理

    有些人啊,上传到git的项目,根本不是项目而是一个文件夹,文件夹里边还有个文件夹那才是项目,IDEA 不会识别出它是项目来 这个时候,需要选择这个文件夹下的pom.xml 文件 右键 pom.xml然 ...

  7. visualvm监控类是否是多例模式

    使用 visualvm干的第一件事情:监控类是否是多例模式 具体操作为: 1.首先启动本地项目,打开 jvisualvm,选择Tomcat(注意,在jdk目录下的名称里,命名前加了一个 j,别找不到了 ...

  8. Shell 流程控制-if 语句

    单分支if条件语句 if [ 条件判断式 ] ; then程序fi 例子:判断分区使用率 #!/bin/bash # Author: huangrui (Email:mycheryhr@gmail.c ...

  9. Hdoj 1548.A strange lift 题解

    Problem Description There is a strange lift.The lift can stop can at every floor as you want, and th ...

  10. IP地址等价类测试用例

    下面是一个比较完善的设计方案,这个方案中,首先把IP地址分成有效可用的IP地址和有效但不可用的IP地址两个等价类:其中有效可用的IP地址中包括IP地址的A,B,C三类地址,有效但不可用的IP地址包括D ...