K8s集群中用于SSH调用的反向代理行为

时间:2018-10-01 11:52:44

标签: nginx kubernetes iptables nginx-reverse-proxy

我正在通过托管K8s集群构建应用程序。我可以创建部署并与NodePort合作。然后可以通过这些端口访问服务。

管理所有公开的服务及其端口正成为一项挑战,对于HTTP流量,我正在考虑公开一个单一的nginx代理,该代理将https://someservice.someurl:someport代理到https://someservice:someport并拥有{{1} } DNS映射到我的前端Ubuntu IP,如下所示。

enter image description here

对于网络流量,我认为它应该可以正常工作。但是,我有一些可以通过ssh访问的部署。例如git daemon。对于这些恶魔,我目前正在执行类似someurl的命令,并且我想使用与HTTP流量相同的DNS名称(即git clone ssh://git@someipsofthecluster:someport/git-server/repos/somerepos

我了解iptables,可以将从一个端口传入的流量重定向到另一个IP /端口,但是我不知道如何将所用子域重定向到给定的计算机/端口。

1 个答案:

答案 0 :(得分:1)

您可能不得不重新考虑如何执行此操作,因为实际上不可能实现基于TCP名称的TCP负载平衡或代理。有关here的更多信息。请记住,HTTP是第7层协议,因此代理可以使用“主机”标头来定向请求。

iptables也无法基于主机名进行过滤。 here的更多内容。

但是,您可以使用第4层代理,即TCP代理,但这将基于侦听特定的TCP端口。 Nginx可以做到,也可以使用Haproxy之类的东西。