Træfɪk 是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。 它支持多种后台 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) 来自动化、动态的应用它的配置文件设置。
特性
- 它非常快
- 无需安装其他依赖,通过Go语言编写的单一可执行文件
- 支持 Rest API
- 多种后台支持:Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, 并且还会更多
- 后台监控, 可以监听后台变化进而自动化应用新的配置文件设置
- 配置文件热更新。无需重启进程
- 正常结束http连接
- 后端断路器
- 轮询,rebalancer 负载均衡
- Rest Metrics
- 支持最小化 官方 docker 镜像
- 后台支持SSL
- 前台支持SSL(包括SNI)
- 清爽的AngularJS前端页面
- 支持Websocket
- 支持HTTP/2
- 网络错误重试
- 支持Let’s Encrypt (自动更新HTTPS证书)
- 高可用集群模式
清爽的界面
Træfɪk 拥有一个基于AngularJS编写的简单网站界面。
示例
你可以通过这个 Katacoda 教程 快速感受Traefik是如何在多个Docker容器间负载均衡的。
这里有一个 Ed Robinson 在 ContainerCamp UK 会议中的演讲。 你将从中发现 Træfɪk 的基本特性并看到更多Træfɪk与Kubernetes的示例。
这里有一个 Emile Vauge 在法国 Devoxx France 2016 会议中的演讲。 你将从中发现 Træfɪk 的基本特性并看到更多Træfɪk与Docker, Mesos/Marathon 和 Let’s Encrypt的示例。
获取
./traefik --configFile=traefik.toml
- 通过Docker镜像:
docker run -d -p 8080:8080 -p 80:80 -v $PWD/traefik.toml:/etc/traefik/traefik.toml traefik
- 通过源码编译:
git clone https://github.com/containous/traefik
你可以在 这里 找到完整的文档。