服务网格(Service Mesh)是本次大会的最热门话题之一,北美KubeCon第一天有不少Keynote和Session围绕Istio、Linkerd和Conduit等热门的Service Mesh项目展开,故挑选其中比较有代表的分享给大家。
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
社区评论
在 Kubernetes 赢得容器编排之战后,社区、厂商和用户的关注点不约而同的都开始集中在如何更好的落地微服务化的云原生应用。可以看到,业界目前比较明显的趋势是将微服务应用管理这层从支撑平台中解耦出来,形成 Service Mesh 层,包括服务的路由、负载均衡、流量分配和监控等一系列功能,都由 Service Mesh 来完成。
目前来看,社区的各个 Service Mesh 项目发布时间都不长,不管是Istio、Linkerd 还是新发布的 Conduit ,虽然社区发展非常迅速,但都还需要经过时间的检验,以达到企业级用户所需的稳定性、可靠性、安全性、易用性等要求。随着云原生应用的日趋普及,毫无疑问 Service Mesh 这项技术将具备美好的前景,让我们拭目以待。
—— KubeCon 北美峰会评论员 Pablo Zhong
双12福利预告:
12月12日,开源云中文社区将联合K8S技术社区、EasyStack为国内社区用户精彩送上“赴美大咖团国内首轮直播访谈”,为大家解读KubeCon北美峰会最新最热议题内容!添加小助手免费报名!
投稿邮箱:openstackcn@sina.cn