【Docker】服务发现项目Registrator

通常,一个服务发现系统主要由三部分组成:

  • 注册器(registrator):根据服务运行状态,注册/注销服务。主要要解决的问题是,何时发起注册/注销动作。
  • 注册表(registry):存储服务信息。常见的解决方案有zookeeper、etcd、cousul等。
  • 发现机制(discovery):从注册表读取服务信息,给用户封装访问接口。

在Docker集群系统中,常见的做法是由服务发现机制封装在集群管理层(YARN、Kubernetes等):由于容器的部署、运行监控都掌握在集群管理器手里,何时注册/何时注销很容易决定,而且registry backend与服务信息定义都由集群管理系统来封装。

最近看到一个有趣的项目——Registrator,它一个是独立的服务注册器,无需依赖任何集群管理系统,:

  • 通过docker socket直接监听容器event,根据容器启动/停止等event来注册/注销服务
  • 每个容器的每个exposed端口对应不同的服务
  • 支持可插拔的registry backend,默认支持Consul, etcd and SkyDNS
  • 自身也是docker化的,可以容器方式启动
  • 用户可自定义配置,如服务TTL(time-to-live)、服务名称、服务tag等

你可能感兴趣的:(Cloud,Computing)