自定义 Traefik2 中间件

Traefik 2.X 版本发布以来受到了很大的关注,特别是提供的中间件机制非常受欢迎,但是目前对于用户来说能使用的也只有官方提供的中间件,这对于某些特殊场景可能就满足不了需求了,自然而然就想到了自定义中间件,然而现在要想自定义中间件不是一件容易的事情,虽然实现一个中间件很简单,因为目前官方没有提供方法可以将我们自定义的中间件配置到 Traefik 中,所以只能采用比较 low 的一种方法,那就是直接更改官方的源代码了,下面我们以一个简单的示例来说明下如何自定义一个 Traefik 中间件。

[阅读全文]

Traefik2.X 版本 中 URL Rewrite 的使用

前面我们介绍了在 ingress-nginx 中 URL Rewrite 的使用,其中重写路径大部分还是和传统的 nginx 方式差不多,如果我们使用的是比较云原生的 Traefik 来作为我们的网关的话,在遇到有 URL Rewrite 需求的时候又改怎么做呢?前面我们用一篇文章 一文搞懂 Traefik2.1 的使用 介绍了 Traefik2.1 的基本的功能,唯独没有提到 URL Rewrite 这一点,在 Traefik2.1 中我们依然可以很方便的用中间件的方式来完成这个功能。

[阅读全文]

一文搞懂 Traefik2.1 的使用

Traefik 是一个开源的可以使服务发布变得轻松有趣的边缘路由器。它负责接收你系统的请求,然后使用合适的组件来对这些请求进行处理。

除了众多的功能之外,Traefik 的与众不同之处还在于它会自动发现适合你服务的配置。当 Traefik 在检查你的服务时,会找到服务的相关信息并找到合适的服务来满足对应的请求。

Traefik 兼容所有主流的集群技术,比如 Kubernetes,Docker,Docker Swarm,AWS,Mesos,Marathon,等等;并且可以同时处理多种方式。(甚至可以用于在裸机上运行的比较旧的软件。)

traefik architecture

使用 Traefik,不需要维护或者同步一个独立的配置文件:因为一切都会自动配置,实时操作的(无需重新启动,不会中断连接)。使用 Traefik,你可以花更多的时间在系统的开发和新功能上面,而不是在配置和维护工作状态上面花费大量时间。

[阅读全文]

Traefik 2.0 实现自动化 HTTPS

上一篇文章我们实现了 Traefik 2.0 暴露 Redis(TCP) 服务,我们了解到 Traefik 中使用 TCP 路由配置需要 SNI,而 SNI 又是依赖 TLS 的,所以需要配置证书才能正常访问 TCP 服务,其实 Traefik 除了支持我们手动配置 TLS 证书之外,还支持自动生成 TLS 证书,本文就来为大家介绍如何在 Traefik 2.0 中配置自动化 HTTPS 服务。

[阅读全文]

Traefik 2.0 暴露 Redis(TCP) 服务

前面我们已经提到了 Traefik2.0 已经正式发布了,Traefik2.0 已经支持了 TCP 服务的,但是 Traefik 的官方文档实在是有点混乱,特别是在 Kubernetes 下面的使用更不详细,我在业余时间已经在尝试对官方文档进行翻译,地址:https://www.qikqiak.com/traefik-book,去掉了一些多余的文档,增加一些在 Kubernetes 下面的使用案例。

[阅读全文]

Traefik 团队开源的轻量级 Service Mesh 工具 Maesh

Maesh

Containous(Traefik 团队)推出了全新设计的轻量级 service mesh(服务网格)工具:Maesh,Maesh 允许对 Kubernetes 集群内流动的流量进行管理,这与入流量和出流量同样很重要。

Maesh 构建在 Traefk 之上,是一个简单但功能齐全的服务网格,支持最新的服务网格接口规范 SMI,有助于与现有的一些解决方案进行集成。此外,Maesh 默认是需要开启使用的,这意味着在你决定将它们添加到网格之前,你的现有服务不会受到影响。

[阅读全文]

nginx-ingress 的安装使用

nginx-ingress 和 traefik 都是比如热门的 ingress-controller,作为反向代理将外部流量导入集群内部,将 Kubernetes 内部的 Service 暴露给外部,在 Ingress 对象中通过域名匹配 Service,这样就可以直接通过域名访问到集群内部的服务了。相对于 traefik 来说,nginx-ingress 性能更加优秀,但是配置比 traefik 要稍微复杂一点,当然功能也要强大一些,支持的功能多许多,前面我们为大家介绍了 traefik 的使用,今天为大家介绍下 nginx-ingress 在 Kubernetes 中的安装使用。

[阅读全文]

如何保护对外暴露的 Kubernetes 服务

有时候我们需要在 Kubernetes 中暴露一些没有任何安全验证机制的服务,比如没有安装 xpack 的 Kibana,没有开启登录认证的 Jenkins 服务之类的,我们也想通过域名来进行访问,比较域名比较方便,更主要的是对于 Kubernetes 里面的服务,通过 Ingress 暴露一个服务太方便了,而且还可以通过 cert-manager 来自动的完成HTTPS化。所以就非常有必要对这些服务进行一些安全验证了。

[阅读全文]

Kubernetes Ingress 自动化 HTTPS

使用 Let's Encrypt 实现 Kubernetes Ingress 自动化 HTTPS

我们知道HTTPS的服务非常安全,Google 现在对非HTTPS的服务默认是拒绝的,而且还能避免国内各种乱七八糟的劫持,所以启用HTTPS服务是真的非常有必要的。一些正规机构颁发的CA证书费用又特别高,不过比较幸运的是也有免费的午餐 - Let's Encrypt,虽然只有90天的证书有效期,但是我们完全可以在证书失效之前,重新生成证书替换掉。在Kubernetes集群中就更方便了,我们可以通过 Kubernetes Ingress 和 Let’s Encrypt 实现外部服务的自动化 HTTPS。

[阅读全文]