首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes集群中处理和转发网络数据包的网络网关应用

Kubernetes集群中处理和转发网络数据包的网络网关应用
EN

Stack Overflow用户
提问于 2020-05-03 08:17:09
回答 1查看 147关注 0票数 1

我正试图在Kubernetes集群中构建一个网络应用程序,该集群处理两个服务器之间的数据包,并为穿越应用程序的通信提供安全服务。以下几点总结了此应用程序的工作方式:

  1. Server1和Server2通过IPsec隧道连接到网络网关应用程序。
  2. Server1发送的数据包封装在IPsec隧道中,并被发送到Server2,即内部数据包中的目标IP地址是Server2 IP地址。
  3. IPsec服务器在集群中的Pod中运行。这被定义为Kubernetes服务IPSEC。
  4. 我创建了另一个名为遥测的Kubernetes服务,它可以工作在网络数据包上。该服务从数据包中收集一些遥测数据,并可选择地对数据包应用一些策略。
  5. 在此IPSEC IP上接收到的解密数据包具有与Server2 IP地址相同的目的IP地址,需要转发到遥测业务吊舱。
  6. 遥测服务吊舱处理分组,并将其转发回IPSEC吊舱,以便能够通过IPsec隧道将数据包转发到实际的目的地IPsec。
  7. 一旦这起作用,我还计划在遥测之后添加几个服务,以便遥测服务舱将包转发到这些服务。链中的最后一个服务将把它转发回IPSEC pod。

在将IP包从一个荚传送到另一个荚时,我面临着挑战。我希望将不被发送到集群中的任何服务或吊舱的数据包从一个端传送到另一个荚。我探索了Flannel,但是如果目标荚运行在同一个节点上,它就不会在覆盖层上转发数据包。从性能角度看,由于用户和内核空间之间存在多个数据包副本,这似乎不是很好的解决方案。

如果有人能在我的应用程序中提出一个很好的解决方案,把IP包从一个荚转发到另一个荚,那将是一个很大的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-03 12:21:17

我建议不要从头开始构建它,而是为此使用一个服务网格,比如伊蒂奥。Istio和许多其他服务网格都有数据平面代理,比如使节,它拦截从一个吊舱进入另一个吊舱的所有流量。服务网格提供了安全功能,如mTLS、TLS证书旋转和遥测,以及更多的开箱即用。

如果开源服务网格提供的控制平面不支持您的特定用例,则可以编写自定义控制平面,同时仍然使用公使作为数据平面代理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61571476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档