Istio 0.2 发布:增强的 Service Mesh 以及多环境支持

在 2017 年 5 月 24 日,我们启动了 Istio —— 一个为微服务提供连接、监控和安全支持的平台。互联 网对我们投入了巨大的关注,开发、运维和合作伙伴的社区日益壮大,这一切让我们诚惶诚恐。0.1 版本 展示了 Kubernetes 环境下 Istio 的所有概念。

今天我们高兴的宣布 0.2 版,这一版本在稳定和性能方面有了增强,在 Kubernetes 中提供了全集群范围内 的部署和 Sidecar 的自动注入功能,为 TCP 提供了策略和认证支持,Service Mesh 的扩展能力进一步 覆盖到了虚拟机上。另外,Istio 现在可以在 Kubernetes 之外的环境运行,例如 Consul/Nomad 或者 Eureka。除了核心功能之外,Istio 还为第三方公司和个人提供了扩展开发的能力。

0.2 版本亮点

提高可用性

  • 多命名空间支持:响应 0.1 版本的用户呼声,Istio 可以在集群范围内的多个命名空间内运行。

  • TCP 服务的策略和安全支持:除了 HTTP 服务之外,我们为 TCP 服务加入了双向 TLS 认证以及 策略支持。这使得我们所提供的观测、策略以及安全能力能够覆盖到更多 Kubernetes 应用之中。

  • Sidecar 的自动注入:在 Kubernetes 1.7 加入了 Alpha 版本的 initializer 特性之后,可以 利用这一能力将 Envoy sidecar 自动注入到应用之中了。这样就可以像没有 istio 之前一样, 直接使用 kubectl 进行应用部署。

  • 使用自定义 CA 认证:让用户能够为 Istio CA 提供自己的 Key 并存储。签署的密钥和证书会加快 CA 的重启。

  • 增强的路由和指标:支持 WebSocket、MongoDB 以及 Redis 协议。可以把断路器这样的能力应用到 第三方服务中去。另外除去 Mixer 的指标之外,上百个来自于 Envoy 的关于所有接收、外发以及 Service Mesh 内部的流量指标都可以使用 Prometheus 获取了。

跨环境支持

  • Mesh 扩展:Istio 的 Mesh 现在可以跨出 Kubernetes 为外部服务提供自动双向 TLS 认证、流量 管理、监控以及策略的支持了。
  • 脱离 Kubernetes 运行:我们知道很多用户在使用其他的服务注册和编排方案,例如 Consul/Nomad 以及 Eureka。Istio Pilot 现在可以在 Kubernetes 之外,依赖上述系统独立运行了,并同时对 运行于虚拟机和容器中的 Envoy 进行管理。

加入 Istio,共塑未来

我们还有很长的路要走,Roadmap 中包含了众多尚待实现的强大功能。我们希望下个版本能够继续增强可靠 性、稳定性和对第三方的集成能力,以及多集群的支持。

最简单的加入方法就是在众多的工作组 中选择一个符合兴趣的加入进去。这些工作组会经常展开对范围内的 Issue 的讨论,并协助完善该领域的 Roadmap。如果有对 Istio 社区的建议,可以加入每周的社区会议。 另外还可以加入邮件列表

我们要感谢我们的强大社区,为 Istio 做出了测试、Bug 报告、代码以及成员沟通和无数的讨论等等 各方面的贡献。这些贡献让项目在 Github 赢得了 3000 星的评价,以及几百个活跃成员。

谢谢大家。