许多组织发现自己正横跨着两个世界,一个是虚拟机和裸机服务器上的老式 brownfield(在遗留系统上开发部署的软件项目)设置,另一个是由 Kubernetes 管理的 greenfield(全新环境中从头开发的软件项目)世界。 管理由这两种基础设施组成的混合结构历来耗时且复杂,工程繁重且存在重复工作。

在任何横跨新旧世界的环境中添加服务网格使你能从不同的基础设施中抽离出来,并使你的组织重新聚焦到以应用为中心。

混合环境的关注问题

在混合环境中工作的组织最常见的三点忧虑一般围绕着以下几点:

  1. 流量管理
    开发者需要能够无缝引导虚拟机和容器间的流量。 因此,这两种环境需要能够相互通信且不用担心网络边界问题。
  2. 业务可见性
    由于 Kubernetes 上运行着大量由不同语言编写的微服务,很难通过采用一个通用框架来监控这些服务的健康状况。 再考虑到错综复杂的遗留环境, 有很多事要解决。
  3. 安全性
    团队处理 greenfield 服务和 brownfield 服务间的一组不一致的安全策略。 流量需要统一保护而非依赖开发团队将其构建到代码中。

Istio 服务网格是帮助你以最一致的方式管理这些问题的最佳途径,标准化你的操作方式并用一套工具完成它。

服务网格 101

Istio 服务网格由一个可编程的 L7(应用)代理层和一个负责配置代理的控制平面组成。L7 代理层处理服务间的所有内部流量。

控制平面定义必要的身份认证和授权功能,同时提供 sidecar 代理需要的相关证书以保证服务安全。

The architecture o9f an Istio Mesh, detailing ingress traffic coming into the mesh with two services and Envoy proxies to serve traffic and the IstioD control plane visible

服务网格覆盖了所有进入网络和在网络内变化的活动。 通过 Istio 网关,它也可以扩展到你网络的外围。 像位于服务旁的代理一样,Istio 网关也受定义在控制平面内的相同策略的管制,并生成遥测数据。 你啥都能看到!

通过 Istio,你可以启用授权、所有服务的统一相互认证(mTLS)、灵活的路由和弹性配置这些全网格的策略。 最重要的是,你获得了所有网络流量的统一可见性。

如果你想更深入的了解 Istio 服务网格的功能,下载我们的免费 PDF 副本 of Istio: Up and Running (O’Reilly) ,作者是 Zack Butcher 和 Lee Calcote 。或者查看 Tetrate 的 Istio资源库

将虚拟机引入网格中

将虚拟机引入网格中显著提高了对混合环境的控制力。 通过给虚拟机注入 sidecar 和可被 Istio 识别的身份,虚拟机可以跟 Kubernetes 中的 pod 获得同等待遇。 要想让 Istio 对虚拟机和 Pod 一视同仁,就要求可以将虚拟机中的服务简单地加载到网格中,并提供与网格中任何其他服务相同的可观察性、安全性和流量管理特性。 Istio 将虚拟机和 Pod 等同看待, 对你来说这比以往更好,因为你可以在一个控制平面内同时控制两种环境

Before: Inbound mesh traffic coming into a load balancer before it is split between VMs and Istio

After: Inbound traffic reaches the Istio gateway and is directed to both Microservices and VMs by the Istio mesh.

Istio 网关可以被编程以将输入流量引导到虚拟机或容器中。 内部流量问题已经通过增加 Envoy 代理和身份得到解决。 举个例子,如果你要将服务迁移到容器上,你可以使用 Istio 的流量路由特性在测试过的增量上进行转换而不必中断服务。 无论工作负载如何,所有的这些可观察性和安全性功能都将变得扩展和可用,使你能够更好地洞察和控制自己的环境。

服务网格提供的标准化方法是衔接传统与现代基础设施的最负责任的选择。 它为你的应用开发、平台和安全团队提供了精确和实时的操作能力。 终,你将获得你想要的云原生开发环境并且只要你需要,你的 brownfiled 环境将完好无损。

 

Tetrate 致力于使 istio 可以在任何工作负载和环境下运行。 如需了解更多信息,请联系我们以了解我们如何通过旗舰产品 Tetrate Service Bridge 帮助您实现这一目标。

作者