Containous开源微服务网状网络Maesh,用于管理K8s丛集内部网络流量

云端服务业者Containous开源了新服务网状网络(Service Mesh),这个专案的目的,是要让Kubernetes应用程序的各个部分,更容易互相沟通,让使用者能管理Kubernetes丛集内部流量。
Containous是反向代理Traefik的开发公司,Traefik可以透过Kubernetes与Docker Swarm容器调度环境,自动进行流量管理,提供使用者OpenTracing、HTTP负载平衡、gRPC、WebSocket、TCP,以及各种路由规则和故障转移等功能。
这个专为微服务设计的服务网状网络Maesh,就是建立在Traefik之上,让使用者能查看并管理在K8s丛集内流动的流量,Containous表示,管理丛集内部流量跟管理流入流出丛集的流量一样重要,而Maesh是一个操作简单功能齐全的服务网格,其基于原生容器的设计,能适用于用户的K8s丛集,且支援最新的服务网状网络界面规范(Service Mesh Interface,SMI)。
Maesh属于非侵入性的服务网状网格,不使用任何边车容器(Sidecar Container),而是透过每个节点上执行的代理端点处理路由,网状网络控制器会在专用的Pod中执行,并且处理所有配置解析和部署。Containous提到,不使用边车容器的意思,代表Maesh不会修改Kubernetes物件,同时也不会在使用者未知的情况下,修改丛集中的流量。
Maesh可以执行TCP模式或是HTTP模式。TCP模式将可以无缝的与SNI路由整合,而HTTP模式则是使用Traefik功能集,允许对虚拟主机、标头和Cookie启用丰富的路由功能。
Maesh会利用Kubernetes中预设安装的CoreDNS的平台,该平台允许开发者使用Maesh端点,而非原本标准的K8s服务端点。Maesh端点与使用者服务同时运作,Containous让使用者可以自由地选择在K8s丛集中加入Maesh。当用户未在K8s丛集加入Maesh前,服务不会受到影响,而Containous表示,他们在安装Maesh时,对CoreDNS维持最小且非侵入的更新,之后使用者也可以简单地移除。
