写点什么

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

  • 2019-11-15
  • 本文字数:1418 字

    阅读完需:约 5 分钟

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


2019-11-15 08:272716

评论

发布
暂无评论
发现更多内容

回"疫"录(9):守住我们自己的净土

小天同学

疫情 回忆录 现实纪录 纪实

MyBatis 3 解析Mapper映射配置

杨家昌

mybatis 配置 Mapper XMLMapperBuilder

小米手机广告在日本「炸」了,背后的教训是什么?

葛仲君

产品 本地化 小米 日本 文化

算法篇之数组右移

月夜

算法 数组右移

第一篇InfoQ的博客

程序员小岑

写作 体验

iTerm2使用小技巧-密码管理器

小菜与老鸟

iTerm

Redis学习笔记(散列类型)

编程随想曲

redis

没有业务规则的技术实现

wd

吐槽

地址收录

gogogo

深入理解Java中的Lambda表达式和函数式编程的关系

jerry

Lambda java8 函数编程

这样理解Java中的函数式编程就对了

jerry

java8 函数编程

最好的汇报是不需要汇报

伯薇

团队管理 领导力 沟通 汇报 可视化

写文章的目的是什么?

小天同学

思考 写作 感悟 表达

Ubuntu 20.04 装机手册

小柒

Linux #Ubuntu #geek

我为什么不买Mac

Winann

效率 效率工具 Mac apple

关于架构的几件小事:架构是什么

北风

架构 企业架构

牛排等级之美国篇

地藏@易果18916037281

Java并发编程基础--Synchronized

Java收录阁

线程

央行:取消境外机构投资者额度限制,推动金融市场进一步开放

kimmking

jenkins集成maven获取远程项目

kcnf

性能优化第一课:性能指标

kimmking

性能优化

在 TypeScript 处理空值异常

寇云

typescript 大前端

道德和正确的认知

沈传宁

信息安全 计算机道德

一种消息消费失败的处理方案

redis kafka

为什么很多技术都觉得前端很简单?

极客时间

大前端

spring boot 集成 elasticsearch 7.x (一)

wd

elasticsearch high level client

讨论:应不应该用存储过程?

kimmking

测试驱动开发英制单位转换

escray

学习 CSD 认证实战营

系统的安全性设计

Janenesome

读书笔记 程序员 架构 安全

关于 DeepL 机器翻译能力

梁帅

产品 互联网 机器翻译 谷歌Google DeepL

不安全的“安全密码”

沈传宁

信息安全 口令安全

Traefik 团队开源了轻量级服务网格 Maesh_云计算_Damien Duportal_InfoQ精选文章