资讯专栏INFORMATION COLUMN

Docker Swarm几种发现服务比较

FullStackDeveloper / 1402人阅读

摘要:可以使用文件记录节点,但是这个文件必须放在能被访问的地方,或者在启动的时候指定文件路径可以指定一个地址范围,类似于或者使用做发现服务,参考之前的文章入门笔记参考网站

转载请注明出处 http://www.paraller.com
原文排版地址 点击跳转

服务发现方案:键值对储存

Docker hub

Consul

Etcd

ZooKeeper

客户端创建

节点 加入swarm中会触发发现事件,当你使用脚本添加大量的节点,或者从网络分区中恢复节点连接,因为太集中的触发将会导致发现失败,可以使用 --delay选项指定延时限制,Swarm join 会在你指定的时间汇总添加随机的延时去减轻发现服务的压力

Etcd:

 swarm join --advertise= etcd://,/

Consul:

 swarm join --advertise= consul:///

ZooKeeper:

 swarm join --advertise= zk://,/
启动swarm manager

Etcd:

 swarm manage -H tcp:// etcd://,/

Consul:

 swarm manage -H tcp:// consul:///

ZooKeeper:

 swarm manage -H tcp:// zk://,/
使用docker命令测试
 docker -H tcp:// info
 docker -H tcp:// run ...
 docker -H tcp:// ps
 docker -H tcp:// logs ...
列出集群中的节点

Etcd:

 swarm list etcd://,/ 

Consul:

 swarm list consul:/// 

ZooKeeper:

 swarm list zk://,/ 
分布式发现服务的TSL连接方式

只能使用Consul and Etcd. Consul示例:

swarm join 
    --advertise= 
    --discovery-opt kv.cacertfile=/path/to/mycacert.pem 
    --discovery-opt kv.certfile=/path/to/mycert.pem 
    --discovery-opt kv.keyfile=/path/to/mykey.pem 
    consul:///
使用静态文件或者指定节点列表

这种方式不适用于 复制的swarm manager,当你要使用复制特性,请使用发现服务。

可以使用文件记录节点,但是这个文件必须放在能被manager访问的地方,或者在启动的时候指定文件路径
可以指定一个IP地址范围,类似于:

  $ echo "10.0.0.[11:100]:2375"   >> /tmp/my_cluster
  $ echo "10.0.1.[15:20]:2375"    >> /tmp/my_cluster
  $ echo "192.168.1.2:[2:20]375"  >> /tmp/my_cluster

  swarm manage -H tcp:// file:///tmp/my_cluster

  $ swarm list file:///tmp/my_cluster
    
    
    

或者

swarm manage -H  "nodes://10.0.0.[10:200]:2375,10.0.1.[2:250]:2375"
swarm manage -H  nodes://,
or
swarm manage -H  ,

使用Docker hub做发现服务,参考之前的文章 《docker swarm入门笔记》

参考网站

Docker Swarm Discovery

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27094.html

相关文章

  • SwarmKit知多少——来自源码世界的深入解读

    摘要:一个容器起来,能够对外服务,这时就看下一步的负载均衡服务发现以及编排。它们有不同的应用场景,比如倾向于四层的负载均衡。不单是负载均衡,它同时解决了服务发现和负载均衡两个点。 今天是数人云容器三国演义Meetup嘉宾演讲实录第二弹。数人云工程师春明为大家奉送了一盘干货的大餐,让我们读读源码,深入了解一下SwarmKit的世界吧! 小数前方预警:有大量代码出现! showImg(htt...

    stefanieliang 评论0 收藏0
  • Docker Swarm集群初探

    摘要:既然要组集群那就涉及诸如的资源调度管理等等一系列问题。目前涉及集群的三个主要的技术无外乎三种。从本文开始作者将会一一实践这几种主要的集群技术,话不多说,现在开始。完全运行于内存中,体积小,启动快。 showImg(https://segmentfault.com/img/remote/1460000015723680); 前言 相信Docker技术大家都有所了解,单个Docker能发...

    MingjunYang 评论0 收藏0
  • 代码级干货 | 进阶Docker 1.12,全新的分布式应用捆绑包

    摘要:利用分布式应用捆绑包简称部署服务相较于利用大量参数创建网络及服务,这里我们选择使用一个文件。 在Docker 1.12版本中,全新的Swarm捆绑包相较于原有编排及调度机制做出了巨大改进。它不再需要运行一组独立的Swarm容器,这部分容器已经被直接捆绑在Docker Engine当中,故障转移策略更为可靠,服务发现机制实现内置,新的网络功能极为顺畅……看起来很棒是不是? 数人云这...

    2i18ns 评论0 收藏0
  • Docker Swarm的前世今生

    摘要:当然此时的局限性较大,比如没有副本和负载均衡的概念,这导致服务无法高可用当然也更不存在什么服务网络管理和跨节点数据存储这些东西没有服务模型集群中服务间关系和启动顺序编排也很复杂于是就有了下面的的诞生。 showImg(https://segmentfault.com/img/remote/1460000015317037?w=1885&h=1153); 概述 在我的《Docker S...

    lemon 评论0 收藏0
  • 基于 Docker 1.12 Swarm 的集群管理开发实践

    摘要:由于没有了中心化的负载均衡器,集群不会因某台机器异常而导致整个服务对外不可用,很好的避免了单点问题,同时也带了可扩展性。 Mesos/Marathon 折腾久了,我们一直希望有机会深入到 Swarm 内部一探究竟。 另外, Mesos 这一套东西虽然是久经企业级考验的, 但是安装、部署和使用相对复杂,上手有门槛。同时,在今年的 DockerCon 上,内置了Swarm 功能的 Dock...

    My_Oh_My 评论0 收藏0

发表评论

0条评论

FullStackDeveloper

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<