《云计算与虚拟化技术丛书 Service Mesh实战》—3.2.3服务注册:Registrator
3.2.3 服务注册:Registrator
如果使用Kubernetes或者Nomad等编排工具时,服务注册由编排工具自动完成,无需考虑。但是我们的演示环境中未使用编排工具,那么使用Consul进行服务发现时,首先要解决的问题是如何把服务自动注册到Consul?为此,我们引入Registrator(https://github.com/gliderlabs/registrator),它的主要工作是注册以Docker容器运行的服务到服务注册中心。为了使用Registrator注册容器中的服务到服务注册中心,需要在每台机器上部署Registrator,还有需要指定服务注册中心,告知Registrator注册服务到何处。当Docker容器启动时,Registrator通过检测Docker容器运行时信息,自动将运行在Docker容器中的服务注册到服务注册中心,反之,如果服务下线,它自动从服务注册中心注销服务。当前,Registrator支持多种服务注册中心,如Consul,Etcd和SkyDNS 2,而我们的演示环境中使用Consul作为服务注册中心。在启动需要注册到Consul的服务之前,每台机器都会部署一个Registrator实例,部署命令如:
# docker run -d \
--name=registrator \
--net=host \
--volume=/var/run/docker.sock:/tmp/docker.sock \
gliderlabs/registrator \
consul://localhost:8500
其中我们指定服务注册中心Consul的地址为localhost:8500。另外,如果需要将某个服务注册到Consul中,启动Docker相应容器时需额外配置一些参数,以告知Registrator如何注册,比如:必须显示地通过-p或者-P选项指定容器服务端口。更多关于如何使用Registrator的信息,参考官方文档(https://gliderlabs.com/registrator/latest/)中的详细介绍。
- 点赞
- 收藏
- 关注作者
评论(0)