广告

现在可以安全地移除服务网格sidecar吗?

  • 浏览(414)
  • 评论(0)
  • 译者:k8s

服务网格无疑已成为管理容器、虚拟机和Kubernetes环境的基石层。如果没有它,可观察性和监控、日志记录、路由,当然还有安全性将比现在更加困难。sidecar是服务网格的关键组件。它将微服务连接到不同的分布式容器和虚拟机,或者更准确地说,将微服务互连。它还与服务网格一起提供关键功能,用于连接Kubernetes环境中的微服务,以多种方式充当网关。

但是如果我们能够消除服务网格中的sidecar呢?更重要的是,为什么要这么做?

Solo.io和谷歌推出了Istio Amnient Mesh,称这是业界第一个同时提供sidecar和无sidecar架构的服务网格。

Solo.io创始人兼首席执行官Idit Levine表示,对于Istio,服务网格的sidecar组件多年来一直运行良好。然而,Solo.io一直在寻找改进服务网格和sidecar结构的方法。事实证明,谷歌也在做同样的事情。Levine说:“我们基本上都在试图找出如何使Istio更容易使用,甚至可能更安全一点的同时,提供相同的功能,解决用户遇到的一些困难。”

在过去的六个月左右,Solo.io和谷歌一直在合作构建“我们相信是未来的Istio的下一个版本”。

消除sidecar长期以来一直是提高连通性、降低延迟和节约成本的一种方法,此外还为使用Kubernetes服务网格的运维团队降低了复杂性。然而,谷歌云的首席工程师Louis Ryan说:“你可以做到这一点并保持安全的方法有限。我们所做的是找到一种方法来做到这一点,同时仍然以一种非常重要和有意义的方式维护服务的所有最佳安全属性。我们不认为sidecar有任何固有的错误,但它们确实带来了运维挑战。”

然而,企业管理协会(EMA)分析师Torsten Volk表示,这并不是第一次尝试提供无sidecar服务。Volk说,Cilium也提供了一种新的架构,其中sidecar是可选的——这取决于具体的用例要求。Cilium用于容器网络和安全。Cilium使用Kubernetes自定义资源通过Linux内核直接编程代理。Volk说,Linkerd“走了一条不同的路线”,只使用Kubernetes控制平面进行服务发现,但依赖独立的基于sidecar的代理来运行。

Istio Ambient Mesh与基于sidecar的Istio部署完全兼容,并且sidecar或无sidecars部署都由Istio控制平面管理。Solo.io和谷歌表示,随着Ambient Mesh增强,Istio成为“第一个以一致的控制平面提供两种模式的服务网格”。此外,使用Istio Ambient Mesh,整个服务网格上不会丢失平台或策略管理功能,不会丢失特定于应用程序的安全和应用程序卸载功能,也不需要应用程序或基础设施团队立即学习新的编程语言。

Solo.io和谷歌之所以能够做到这一点,是因为sidecar在服务周围创建了一个安全边界,确保在进出服务的流量上执行策略。”谷歌的Ryan写道。挑战是在将这些策略的复杂性放入网络的同时保持相同的边界,以便使sidecar远程。Ryan说,通过在L4引入强零信任网络,可以通过强制所有流量在到达服务之前通过一个航路点代理(远程sidecar)来维持工作负载的边界。

Volk同意,Istio的无sidecar版本可以维护安全性,但他表示,仍存在一些警告,如在特定情况下可能出现的潜在“噪音邻居”问题。这是因为CPU密集型应用程序工作负载集在同一节点或集群上相遇,要求Kubernetes调度器“在不知道应用哪个应用程序策略的情况下”做出伸缩决策。没有经验的用户可能会引入配置错误,从而导致与缺乏流量分离相关的合规性问题。“此外,如果出现故障,多个应用程序可能会受到影响。对于依赖于运行时注入自定义代码的应用程序,例如,为了实现事件触发的配置更改或强制上下文,仍然需要sidecar。”

Solo.io和谷歌表示,Istio Ambient Mesh可以以三种方式改善Istio用户的整体体验:

——启用无sidecar架构,将代理功能从pod级别移动到节点级别,以提高整体应用程序性能,同时减少10到20倍的计算和内存开销。

——提高了应用程序的透明度,以简化运维并使系统升级和新应用程序部署到网格中更方便。

——新的可选安全元素PEP(“策略执行点”)的可用性,提供第7层安全检查。

允许sidecar

如上所述,用户还可以选择在sidecar模式下使用Istio服务网格,因为有一个公共控制平面,可以与sidecar或环境模式一起使用。“这为整体环境带来了一致性。”Solo产品营销战略主管Brian Gracely说,“我们允许在每个集群或每个命名空间的基础上部署sidecar或Ambient模式,因此用户可以将架构与应用程序需求最佳匹配。”

出于安全和/或合规的原因,受监管的公司可能会选择sidecar模式,用于一组应用程序——这些应用程序绝对不能在数据路径中的任何位置拥有任何共享资源(如代理),这一点得到了很好的解释。“但他们也可能有一组应用程序(例如营销应用程序),可以使用环境模式而不会出现任何问题。”Gracely说,“其他服务网格提供sidecar或sidecars-less,它们通常让你根据选择的数据平面(如果它们支持多种模式)带上自己的控制平面。”

原文链接:

https://thenewstack.io/can-you-now-safely-remove-the-service-mesh-sidecar/


  • 分享到:
  • icon
  • icon
  • icon
  • icon
箭头