快速入门 这个简短的教程帮你快速开始使用Registrator。完整参看,查看运行参考 概述 Registrator监控新建的Docker容器,并且检查判定这些容器提供的服务。 运行Registrator Registrator运行在每台主机上,我们这里只有一台主机,就运行一次就行。启动Registrator需要配置如何连接到注册机,即这里的Consul。 $ docker logs registrator 我们应该可以看到Registrator运行起来并在“监听Docker事件"。Registrator正常运行了。 运行Registrator docker run [docker options] gliderlabs/registrator[:tag] [options] <registry uri> Registrator 这也是Registrator运行在主机网络模式下或者设置Registrator的主机名为寄宿主机的主机名重要的原因。否则它将是Registrator容器的ID,那没有什么用处。
,其身份为leader; 2、docker02、docker03以容器的方式运行consul服务,并加入到docker01的consul群集中; 3、在主机docker02、docker03上后台运行registrator ,docker02、docker03主机上基于Nginx镜像,各运行两个web容器,提供不同的网页文件,以便测试效果; 5、在docker01上安装consul-template命令,将收集到的信息(registrator 注:registrator是一个自动发现docker container提供的服务,并且在后端服务注册中心(数据中心)注册服务。主要用来收集容器运行服务的信息,并且发送给consul。 四、在docker02及docker03主机上以容器的方式运行registrator服务 #docker02配置如下 [root@docker02 ~]# docker run -d --name registrator :8500 #上述命令的作用是将收集的容器信息发送给本机的8500端口来显示 #docker03配置如下 [root@docker03 ~]# docker run -d --name registrator
[root@manager-node ~]# docker pull shipyard/shipyard [root@manager-node ~]# docker pull gliderlabs/registrator node1和node2节点上 [root@node1 ~]# docker pull progrium/consul [root@node1 ~]# docker pull gliderlabs/registrator --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 182.48.115.237 --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 182.48.115.238 consul --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 182.48.115.239 consul
, Registrator, Client WebApp2, Server WebApp3, Server WebApp4 192.168.1.185 Consul Client, Registrator 镜像构建 Consul:consul:latest Registrator:gliderlabs/registrator:latest Nginx和Consul-template:liberalman/ : image: gliderlabs/registrator:latest hostname: registrator links: - consul_server_master : image: gliderlabs/registrator:latest hostname: registrator links: - consul_server_slave registrator 容器的启动依赖于 consul 容器,而此时 consul 还并未启动,就出现了 registrator 优先启动而异常退出的现象。
于是实现了轮子 https://github.com/xiazemin/registrator-nacos 这个轮子目前是上传到dockerhub了 https://hub.docker.com/repository /docker/xiazemin/registrator-nacos 如果不想自己编译一遍的话可以直接使用镜像,下面我们演示下这个sidecar如何使用: 1,首先启动nacos docker run 登录到后台发现是没有服务的 http://127.0.0.1:8848/nacos/#/login 用户名密码都是 nacos 2,启动我们的sidecar docker run -d \ --name=registrator-nacos \ --net=host \ --volume=/var/run/docker.sock:/tmp/docker.sock \ xiazemin/registrator-nacos nacos://127.0.0.1 这个时候发现我们本机已经启动的几个服务被注册到了nacos 比如promethus,实例数目是1,当我们停止sidecar的时候 docker stop registrator-nacos
8400:8400 -p 8500:8500 -p 8600:53/udp -h docker_server progrium/consul -server -bootstrap 部署consul registrator docker run -d --name=consul_registrator --net=host --volume=/var/run/docker.sock:/tmp/docker.sock gliderlabs /registrator:latest -ip="192.168.1.60" consul://192.168.1.60:8500 部署consul template&nginx 部署容器 docker - "8600:8600" environment: - SERVICE_IGNORE=true command: -server -bootstrap registrator : image: gliderlabs/registrator:latest hostname: registrator container_name: consul_registrator
1.8.0 二、思路及部署图 consul-Server 是运行在docker里的consul实例的server模式,可以通过DNS或者HTTP接口使服务注册并对容器进行健康状态检查,consul-registrator 另外比consul-registrator先启动的实例,也是无法监听到的,所以在部署的时候需要注意一下启动顺序。 restart docker 2.下载需要用到的docker镜像,order sudo docker pull registry.cn-hangzhou.aliyuncs.com/hw/consul-registrator docker run -d --name=consul-registrator-node1 --net=host --volume=/var/run/docker.sock:/tmp/docker.sock registry.cn-hangzhou.aliyuncs.com/hw/consul-registrator:1.0.0 consul://0.0.0.0:8500 5.部署一个order镜像
Registrator registrator 是基于 docker 的 sock 文件来做服务发现的一个第三方的方案, 我试了下, 使用起来非常简单. 在141-143机器上执行下面的命令分别安装registrtator docker run -d --restart=always --name=registrator --net=host -v /var /run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip <ip-of-host> consul://localhost:8500 参数解释 consul://localhost:8500 consul 绑定到本地的 consul 接口上 参考资料: Docker DNS & Service Discovery with Consul and Registrator
set("spark.kryo.registrator", classOf[GeoSparkKryoRegistrator].getName) implicit val sc = new SparkContext serializer .config("spark.serializer", classOf[KryoSerializer].getName) .config("spark.kryo.registrator getName) .config("spark.serializer", classOf[KryoSerializer].getName) .config("spark.kryo.registrator
拓扑图解释 consul template:配置文件模板 registrator:注册机制 consul server:consul服务 例如:当后方增加了一个容器时,容器会注册registrator ,registrator发现增加了一个容器的时候,会通知consul server要更新,consul server使用consul template模板更新 3、Docker consul自动发现服务架构的构建 v /var/run/docker.sock:/tmp/docker.sock \ '指定数据卷,存储信息' > --restart=always \ > gliderlabs/registrator :latest "/bin/registrator -i…" 2 minutes ago Restarting (1) 31 seconds ago registrator [root@localhost ~]# docker run -itd -p 83:80 --name test -h test nginx '//创建容器,用来测试服务发现功能是否正常
可以帮助我们实现这一目标的工具之一是Registrator。 Registrator Registrator通过检查容器在线或停止时自动注册和取消注册服务。 关于etcd,Registrator和confd组合的最终想法 当etcd,Registrator和confd相结合时,我们会得到一种简单而强大的方法来自动化我们所有的服务发现和配置需求。 Registrator Registrator有两个Consul协议。所述consulkv协议产生类似的结果作为与该ETCD协议获得的那些。 除了通常与etcd或consulkv协议一起存储的IP和端口之外,Registrator的consul协议还存储了更多信息。我们获取有关运行服务的节点的信息以及服务ID和名称。 最重要的是,Registrator具有相当好的领事协议实现,使得两者成为一个很好的组合,特别是当consul-template被添加到这张图片时。
Registrator Registrator通过检查容器在线或者停止运行状态自动注册和去注册服务,它目前支持etcd、Consul和SkyDNS 2。 对于etcd、Registrator和Confd组合的最后的思考 当etcd、Registrator和Confd结合时,可以获得一个简单而强大的方法来自动化操作我们所有的服务发现和需要的配置。 Registrator Registrator有两个Consul协议,其中consulkv协议产生类似于etcd协议的结果。 etcd、Registrator和Confd是一个非常简单但非常强大的组合,可以解决大部分问题,如果不是全部满足服务发现需要的话。 除此之外,Registrator很好地实现了Consul的两个协议,使其合二为一,特别是添加Consul-template到了拼图中。
8400:8400 -p 8500:8500 -p 8600:53/udp -h cookbook progrium/consul -server -bootstrap -ui-dir /ui registrator docker run -d -v /var/run/docker.sock:/tmp/docker.sock -h 192.168.33.10 gliderlabs/registrator -ip
/consul_config:/consul/config registrator: image: gliderlabs/registrator:latest networks: registrator会以这些环境变量为配置将服务注册到consul。 我们访问一下consul的接口看下ServiceMeta是写入了没有: 果然没有……看来Registrator注册的时候出了岔子。 网上搜了下,确实有Issue提到了这个问题:gliderlabs/registrator#633。 按照部署倒叙关闭sidecar、微服务,重新启动控制平面,等registrator启动完毕后,重新部署微服务和sidecar。
容器服务自动加入Nginx集群 # 安装Glider/Registrator docker run -d --name=registrator --net=host -v /var/run/docker.sock :/tmp/docker.sock --restart=always gliderlabs/registrator:latest -ip=192.168.10.252 consul://192.168.10.253
nginx:latest ports: - 81:80 nginx2: image: nginx:latest ports: - 82:80 registrator : image: shaharil/registrator:latest volumes: - /var/run/docker.sock:/tmp/docker.sock
String]) { val sparkConf = new SparkConf().setMaster("local").setAppName("cocapp").set("spark.kryo.registrator
ME.md registrator https://github.com/gliderlabs/registrator 镜像 https://registry.hub.docker.co ... ator
spark.sql.extensions=com.qubole.spark.hiveacid.HiveAcidAutoConvertExtension spark.kryo.registrator=com.qubole.spark.hiveacid.util.HiveAcidKyroRegistrator
Registrator:一个开源的第三方服务管理器项目,它通过监听服务部署的 Docker 实例是否存活,来负责服务提供者的注册和销毁。 如果你的业务已经是云原生的应用,可以考虑使用 Consul,搭配 Registrator 和 Consul Template 来实现应用外的服务注册与发现。