traefik 是一个开源的反向代理和负载均衡工具,现在官方介绍中将其定位为云原生的边缘路由器,且用了一堆修饰词:简单、自动、高速、全面、开源、产品级、内置监控指标和主流集群技术集成等等。
当然,官方如此描述也是有理有据的,其开源后热度直线上升,而且被广泛使用,尤其是在当下的“微服务”、“云原生”场景。
从我个人的角度讲,其相对于传统的反向代理显得更“现代”:
- 动态的更新配置,不需要重启/reload等操作。
- 原生支持Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS等等后端。
- 支持 RestAPI
- 支持后端健康状态检查,根据状态自动地配置
这些特点,让其在云原生的场景下更贴合。而traefik本身的特性远不止如此。大家有兴趣可阅读它的官方文档:https://docs.traefik.io/,而且国内的资料介绍也很多。
本篇文章的背景是因为工作中用到了版本2中的一些特性,但国内关于新版的介绍资料较少,遂对 back to traefik 2.0 这篇文章的核心部分做了简单翻译提取。如有理解错漏,请指正。
目前(2019年5月21日)2.0 正在开发中,alpha4 版本在 4月17日发布。我们一起看看 2.0 有哪些东西。