服务网格(Service Mesh)是本次大会的最热门话题之一,第一天有不少Keynote和Session围绕Istio、Linkerd和Conduit等热门的Service Mesh项目展开,K8S技术社区特约记者挑选了其中比较有代表的分享给大家。
1)Service Mesh与Istio介绍
Session主题:Istio: A Modern Service Mesh
Google和IBM作为Istio项目的主要发起方,第一天上午Keynote结束之后,两大巨头派出工程师对Istio项目的现状和未来发展进行了系统的介绍。
Service Mesh的主要特征包括可监控性、自愈性、流量控制、安全性、策略执行、零代码改动等,采用Sidecar机制对微服务之间的流量进行全面管理和控制。Istio是今年发布的Service Mesh开源项目,默认采用Envoy作为Sidecar代理,与应用容器一起运行在K8S Pod中,由Envoy接管流量传输,并通过控制平台管理所有Sidecar。典型的一种应用场景是用于控制不同版本Pod之间的流量分配比例,如下图所示:
两位演讲者还介绍了将要发布的Istio 1.0版本的目标,目前来看,稳定性和可靠性仍然是Istio最迫切需要解决的问题。
2)Linkerd发起者分享Service Mesh的前世今生&发布Conduit项目
Session主题:The Service Mesh: Past, Present and Future
Buoyant公司作为Linkerd项目的发起者,在本次大会中也备受关注,公司创始人William Morgan分享了Service Mesh的前世今生。Service Mesh在最近一年的爆发,其实是随着云原生应用的普及而水到渠成的,与传统应用相比,云原生应用的基础抽象发现了巨大的变化,如下图所列。因此,云原生应用的落地,迫切需要在容器编排层之上,引入微服务的管理层,即Service Mesh。
William Morgan还分享了Service Mesh下一步需要完善的工作,如下图所示,其中包括一系列与微服务治理、安全、协议、监控和运行平台相关的特性。另外,他还提到安全性、性能和可用性是Service Mesh目前最值得关注的三大问题。
William Morgan也带来了one more thing——新一代Service Mesh项目Conduit发布。Conduit并不能视作Linkerd的升级版,其主要特性在于超轻量级、高效、安全等,并只针对于Kubernetes环境。
3)分布式事务追踪项目OpenTracing在Service Mesh中的应用
Keynote主题:Service Meshes and Observability
OpenTracing作为CNCF基金会托管的分布式事务追踪项目,与Istio、Envoy、Conduit等Service Mesh项目深度集成,为它们提供事务追踪服务。
在Service Mesh架构中,OpenTracing可以通过类似Sidecar的方式与各个服务一起部署,并将各个调用点与追踪系统连接起来,以实现对分布式应用系统的事务追踪。
4)Istio与Kubernetes脚本工具Brigade配合实现CI/CD流水线
Session主题:Microservice, Service Mesh & CI/CD Pipelines: Making it all work together
来自微软Azure团队的工程师分享了Istio与CI/CD流水线相互配合的实践经验,使用Istio作为应用的管理平面,对接CI/CD工具链,通过Istio的流量控制来实现金丝雀发布测试。
值得一提的是,该团队并未使用国内常用的Jenkins作为CI/CD流水线工具,而是使用了微软新发布的专门针对Kubernetes平台的事件驱动脚本工作来实现CI/CD。
在Demo展示环节中,演讲者详细演示了Istio如何与CI/CD流水线协同工作。如下面3个图所示,在代码提交PR之前,Web端流量全部导入当前生产环境版本(蓝色),而在测试版本提交PR之后,通过Istio对新旧版本的流量进行了分配(90%与10%),实现金丝雀发布,测试完成之后,再将全部流量导入新版本中(绿色)。
Demo源代码链接:https://github.com/chzbrgr71/kube-con-2017
K8S技术社区评论
在Kubernetes赢得容器编排之战后,社区、厂商和用户的关注点不约而同的都开始集中在如何更好的落地微服务化的云原生应用。可以看到,业界目前比较明显的趋势是将微服务应用管理这层从支撑平台中解耦出来,形成Service Mesh层,包括服务的路由、负载均衡、流量分配和监控等一系列功能,都由Service Mesh来完成。
目前来看,社区的各个Service Mesh项目发布时间都不长,不管是Istio、Linkerd还是新发布的Conduit,虽然社区发展非常迅速,但都还需要经过时间的检验,以达到企业级用户所需的稳定性、可靠性、安全性、易用性等要求。随着云原生应用的日趋普及,毫无疑问Service Mesh这项技术将具备美好的前景,让我们拭目以待。
——K8S技术社区KubeCon北美峰会现场评论员 Pablo Zhong