Traefik 团队开源了轻量级服务网格 Maesh

阅读数:1589 2019 年 11 月 15 日 08:27

Traefik 团队开源了轻量级服务网格 Maesh

Containous 发布了全新的服务网格 Maesh ,Maesh 是从头开始重新设计的,易于安装和使用。Maesh 允许对 Kubernetes 集群内部的流量进行可视化和管理,这种流量与 ingress 和 egress 流量同等重要。

Maesh 构建在 Traefik 之上,是一个简单却功能齐全的服务网格。它是容器原生的,适合作为 Kubernetes 集群中的实际服务网格。它支持最新的 Service Mesh 接口规范(Service Mesh Interface,SMI),借助该规范,我们能够更容易地与现有解决方案集成。此外,默认情况下,Maesh 是可选的,这意味着在决定将现有服务添加到网格中之前,它们不会受到任何影响。

非侵入式服务网格

Maesh 并没有使用 sidecar 容器,而是通过运行在每个节点上的代理端点来处理路由。网格控制器运行在一个专门的容器中,会处理所有的配置解析以及到代理节点上的 deployment。Maesh 支持多种配置选项:用户服务对象的注解和 SMI 对象。不使用 sidecar 就意味着 Maesh 不会修改 Kubernetes 对象,也不会在你不知情的情况下修改你的流量。只需使用 Maesh 端点就满足所有需求了。

依赖 Kubernetes DNS

Maesh 利用了 Kubernetes 默认安装的 CoreDNS 平台。它允许用户使用 Maesh 端点(而不是标准的 Kubernetes 服务端点)。Maesh 端点会与用户服务一起运行:你可以自行决定是否要使用它们(可选的)。这会给用户带来更多的自信,因为用户知道他们能够测试和恢复至用户服务。

另外,CoreDNS 的更新使得 Maesh 的安全达到了最小化和无侵入,并且能够很容易移除。

多个网络层

Maesh 可以在 TCP 和 HTTP 模式下运行:

  • 在 HTTP 模式下,Maesh 使用 Traefik 的特性集实现在虚拟主机、路径、头信息和 cookie 上功能丰富的路由;

  • 通过 TCP 模式,允许与 SNI 路由实现无缝和便利地集成。

在同一个集群中,可以同时使用这两个模式,这可以通过服务上的注解来进行配置。

构建在 Traefik 之上

Maesh 构建在 Traefik 之上,Traefik 是一个领先的用于路由的反向代理,它提供了用户期望的所有特性:OpenTracing、HTTP 的负载均衡、gRPC、WebSocket、TCP、丰富的路由规则、重试和恢复,它还具备访问控制、限速和断路器的功能。

易于安装,易于使用

往集群中安装 Maesh 非常容易:安装 Helm chart 就可以,没有辅助应用,没有要安装的 CRD,也没有要学习的新词汇。如果用户已经理解 pod 和服务是如何运行的,那么 Maesh 就会非常易于理解和使用。

首先,我们可以通过如下的命令安装 Maesh:

复制代码
$ helm repo add maesh https://containous.github.io/maesh/charts
$ helm repo update
$ helm install --name=maesh --namespace=maesh maesh/maesh

现在,Maesh 就已经在集群中就绪了,要在运行中的应用中使用 Maesh,我们只需要一个注解:

复制代码
$ kubectl annotate service \
web-application maesh.containo.us/traffic-type=http

如果你的应用使用 TCP 连接协议,而不是 HTTP 的话,Maesh 也能支持:

复制代码
$ kubectl annotate service mongo-database \ maesh.containo.us/traffic-type=tcp

安装和使用 Maesh 就是这么简单。

参考资料:

官方站点: https://mae.sh/

文档: https://docs.mae.sh/

GitHub 地址: https://github.com/containous/maesh

社区论坛: https://community.containo.us/c/maesh

原文链接:

本文最初发表于 medium 博客,经原作者 Damien Duportal 和 Traefik 团队授权由 InfoQ 中文站翻译分享。

https://blog.containo.us/announcing-maesh-a-lightweight-and-simpler-service-mesh-made-by-the-traefik-team-cb866edc6f29

评论

发布