一款先进的反向代理软件: traefik

traefik, 是一款比较先进的反向代理和负载均衡软件, 它使部署微服务更加的容易。 traefik支持多种后端服务(Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Eureka, Rest API, file等等)自动的、动态的管理它的配置。

概览

假设你部署了一组微服务, 你可能会用服务注册中心(例如: consule或者etcd)或者服务调度(swarm, Mesos/Marathon)去管理这些服务。 如果你要让用户从外网访问这些服务,就需要一个方向代理,以虚拟主机或者prefix paths的方式 对外提供服务, 例如:

  • api.domain.com 提供api接口地址
  • domain.com/web 提供web这样一个服务
  • backoffice.domain.com 提供backoffice服务, 用来负载多个后端应用

但是, 微服务的架构是动态的: 服务的增加、删除、 升级等, 这些一天可能要发生好几次。

传统的方向代理相对的不那么动态, 在微服务架构下很难去经常配置并热重启。

traefik可以监听你的服务注册中心或者调度中心的API,获悉哪些服务被添加、删除、修改等, 然后自动生成响应的配置文件, 而且能比较快速的创建。

运行并忘记它的存在!

功能

  • 无依赖,单个golang文件
  • Rest API
  • 多后端支持: Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd等
  • 监听后端, 如果有变化,动态生成配置
  • Hot-reloading配置, 无需重启
  • Gracefull关闭http连接
  • Rest Metrics
  • 有小的docker image的形式
  • SSL后端支持
  • SSL前端支持(用SNI的方式)
  • Angularjs ui
  • Websocket支持
  • HTTP/2支持
  • 重试网络问题
  • Let's Encrypt支持
  • 支持集群的高可用模式

快速开始

你可以在这篇文章中Katacoda tutorial 快速浏览traefik如何负载多个docker容器。

你也可以在这里ContainerCamp UK找到Ed Robinson关于traefik的基础特性和kubernetes上结合traefik的demo。

在这里Devoxx France 2016可以找到Emile Vauge关于tracefik的一些特性和docker、mesos/marathon、Let's Encrypt结合的demo。

Web UI

使用

文档

docs

1 个评论

不错

要回复文章请先登录注册