在Kubernetes集群中,捕获来自Pod的传出请求并重定向到另一个目标

时间:2019-12-29 20:25:57

标签: kubernetes proxy google-kubernetes-engine

我有一个包含3个节点的集群。在每个节点中,我都有一个在Pod中运行的前端应用程序和在单独的Pod中运行的后端应用程序。 我将数据从前端应用程序发送到后端应用程序,为此,我利用群集IP服务和k8 dns资源。 我的前端还有一个功能,可以将数据发送到与k8s群集无关的单独服务。我使用标准AJAX请求将此数据发送到带有有效负载的网址,即http://my-seperate-service-unrelated-tok8.com。 所有这些都可以正常工作,并且群集可以按照我的要求进行操作。 -我已将此集群部署到GKE。我现在想使用minikube在本地运行此集群,但是,当我在本地运行时,我不想将数据发送到我的外部服务-相反,我想将其转发到新的Pod我将创建或不发送。

这里的问题是我需要一个代理来拦截传出的网络流量,检查传出的请求是否是我正在寻找的请求,然后将其重定向。

我了解集群中运行的每个节点在该节点中都有一个kube-proxy服务,该服务用于将流量转发到集群中的相关服务。我想扩展此服务,或创建一个新的代理服务,在这里我可以侦听到特定URL的传出流量并将其重定向。在k8集群中可以这样做吗?我假设我可以创建一个服务来侦听所有传出的请求,并根据我设置的规则重定向特定的请求。

我不确定k8集群是否已经配置了我可以简单添加的服务-这就是为什么我想到kube-proxy的原因,有人可以提出建议吗?我想添加此代理,以便在本地在minikube中运行或部署到GKE时不必更改代码。

非常感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

我做了一个工具,可以帮助您将服务转发到另一个服务,本地端口,来自其他群集的服务等...

通过这种方式,您可以拥有完全相同的url,端口和代码...,但是如果我正确理解了这就是您要查找的内容,则可以“替换”基础服务。

这是一个舞台服务被我的本地3000端口替代的快速示例 link service

这是具有更多信息和示例的存储库:linker-tool

如果您有兴趣,请告诉我是否需要帮助或有任何疑问。