【问题标题】:Reverse Proxy Behavior in a K8s Cluster for SSH Calls用于 SSH 调用的 K8s 集群中的反向代理行为
【发布时间】:2019-03-06 12:40:24
【问题描述】:

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

管理所有暴露的服务及其端口正在成为一项挑战,对于 HTTP 流量,我正在考虑暴露一个 nginx 代理,它将代理 https://someservice.someurl:someporthttps://someservice:someport 并将 someurl DNS 映射到我的前面-end Ubuntu IP 如下图所示。

对于网络流量,我认为它应该可以按预期工作。但是,我有一些可以通过 ssh 访问的部署;例如 git 守护进程。有了这些恶魔,我目前正在执行类似 git clone ssh://git@someipsofthecluster:someport/git-server/repos/somerepos 这样的命令,并且我想使用与 http 流量相同的 DNS 名称(即 git clone ssh://git@someservice.someurl:someport/git-server/repos/somerepo)

我知道 iptables,我可以将来自一个端口的流量重定向到另一个 IP/端口,但我不知道如何针对所使用的子域重定向到给定的机器/端口。

【问题讨论】:

    标签: nginx kubernetes iptables nginx-reverse-proxy


    【解决方案1】:

    您可能不得不重新考虑如何做到这一点,因为 TCP 负载平衡或基于 DNS 名称的代理实际上是不可能的。更多关于这个here。请记住,HTTP 是第 7 层协议,因此代理可以使用“主机”标头来引导请求。

    iptables 也无法基于主机名进行过滤。更多关于 here.

    但是,您可以使用第 4 层代理,即 TCP 代理,但这将基于侦听特定的 TCP 端口。 Nginx 可以做到,或者你也可以使用其他的东西,比如Haproxy

    【讨论】:

      猜你喜欢
      • 2021-10-24
      • 2021-03-03
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 2018-11-17
      • 1970-01-01
      • 2018-08-23
      • 1970-01-01
      相关资源
      最近更新 更多