Træfɪk 是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。 它支持多种后台 (Docker, , Kubernetes, , Mesos, , Etcd, , BoltDB, Rest API, file…) 来自动化、动态的应用它的配置文件设置。

假设你已经在你的基础设施上部署了一堆微服务。你可能使用了一个服务发现系统(例如 etcd 或 consul)或者一个资源管理框架(swarm,Mesos/Marathon)来管理所有这些服务。 如果你想让你的用户去从互联网访问你的某些微服务, 你就必需使用虚拟hosts或前缀路径来配置一个反向代理:

  • 域名 将指向你的私有网络中的微服务 api
  • 路径 domain.com/web 将指向你的私有网络中的微服务 web

传统的反向代理原生不支持动态配置。你不可能轻易的通过热更新更改它们的配置。

这时,Træfɪk就诞生了。

架构

运行它并忘记它吧!

你可以通过这个 快速感受Traefik是如何在多个Docker容器间负载均衡的。

这里有一个 Ed Robinson 在 会议中的演讲。 你将从中发现 Træfɪk 的基本特性并看到更多Træfɪk与Kubernetes的示例。

这里有一个 在法国 Devoxx France 2016 会议中的演讲。 你将从中发现 Træfɪk 的基本特性并看到更多Træfɪk与Docker, Mesos/Marathon 和 Let’s Encrypt的示例。

Docker

通过Docker镜像:

你可以简单的通过Docker compose测试 Træfɪk, 将这个 docker-compose.yml 文件放在名称叫做 traefik的目录下:

在名称叫做 traefik 的目录下运行:

  1. docker-compose up -d

在浏览器中你可以打开 来访问 Træfɪk 的控制后台来发现下面的魔法。

现在, 创建一个名称为 的目录,并在目录中使用以下内容创建一个 docker-compose.yml 文件:

然后, 在 test 目录下按顺序执行以下命令:

  1. docker-compose up -d