Traefik:云原生的边缘路由器1:概要介绍

在这里插入图片描述
Traefik是一个Go语言开发的边缘路由器,可以用作HTTP反向代理或者负载均衡等。Traefik明确将自身定位为云原生的边缘路由器,这篇文章将对Traefik的特性进行介绍。

Traefik是什么

发音与traffic相同的Traefik实际上是一个用于HTTP的反向代理和负载均衡的工具,支持众多的基础框架组件的集成包括Docker、Swarm模式、Kubernetes、Consul、Etcd、Racncher、Amazon ECS等,利用Traefik可以使得微服务部署更加容易。

使用场景

在这里插入图片描述

开发者将微服务部署在Kubernetes或者其他集群之上,通过诸如Etcd或者Consul进行了服务注册,当需要考虑用户如何访问这些微服务的时候,这就需要反向代理出场了。传统的反向代理诸如nginx需要对每个服务的路由进行配置,在动态配置不频繁的传统架构中,这并不会是什么痛点,但是随着微服务的概念的普及和在越来越多的项目中的实践,添加、删除、停止、升级或者水平扩展服务已经是非常频繁的事情了,在这种情况下如何动态地对路由信息进行管理就变成了一件非常棘手的事情。
Traefik就是在这一点上进行了改进,严格来说,所有期待于成为云原生领域的边缘路由器的解决方案的提供者都必须至少提供此项特性。Traefik通过Consul之类的提供服务注册功能的组件中获取服务的信息,然后根据这些动态的信息实时地调整不断变化的微服务所引起的路由信息的变化,从而使得外部的用户和微服务的开发者对此不必过于在意。

概要信息

Traefik的概要信息如下表所示:

项目 说明
官网 https://containo.us/traefik/
开源/闭源 开源
源码管理地址 https://github.com/containous/traefik/
License类别 MIT License
开发语言 Go
操作系统支持 跨平台,支持多种操作系统,比如Linux, Mac OS X, FreeBSD, Solaris, and Windows等
当前稳定版本 2.1.6 (2020/02/29)

主要特性

Traefik提供了如下主要的关键特性:

  • 无需重启,支持配置的热更新
  • 支持多种负载均衡算法
  • 提供HTTPS支持,同时支持Let’s Encrypt的证书自动更新等特性
  • 支持断路器和失败重试
  • 提供可视化的web界面
  • 支持Websocket、HTTP/2和GRPC
  • 支持Rest API
  • 提供可以集成的指标信息,支持Prometheus、Influxdb、Datadog等
  • 提供访问日志
  • 整体只有一个编译后的二进制文件,方便部署和使用
  • 提供基于Alpine的官方镜像

优势

基于上述的一些基本特性,Traefik有着一些相对具有优势的特点:

  • 能够和主流框架进行集成实现自动发现,框架包括Kubernetes, Mesos, Docker Swarm, Key Value Stores, Rancher等
  • 能够和Open Tracing,、Jaeger 和Zipkin等集成实现服务追踪
  • 提供可以集成的指标信息,支持Prometheus、Influxdb、Datadog等
  • 提供HTTPS支持,同时支持Let’s Encrypt的证书自动更新等特性
  • 支持对于HTTP或者TCP的应用的路由请求
  • 可以进行路由的定制
  • 支持金丝雀部署
  • 支持镜像机制,可以复制请求发送至其他服务

社区活跃度

目前社区的活跃程度较好,下载、星数和参与者都保持一个不错的势头。
在这里插入图片描述

商业版本

除社区版还提供商业版本(Treafik EE),在商业版本中重点强化了高可用、扩展性和安全的特性。
在这里插入图片描述

社区版 vs 商业版本

目前EE版本(商业版本)主要在以下具体部分有所强化
在这里插入图片描述

集成和支持

对包括Kubernetes在内的很多流行的工具和平台都提供原生的支持。
在这里插入图片描述

参考内容

https://github.com/containous/traefik/
https://containo.us/traefik/
https://docs.containo.us/features/

发布了1108 篇原创文章 · 获赞 1312 · 访问量 406万+

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/104641813
今日推荐