公开 GKE k8s 外部负载均衡器端口 22,但不公开集群

公开 GKE k8s 外部负载均衡器端口 22,但不公开集群

我们有一个充当 SFTP 服务器的 pod,需要在端口 22 上公开。必须是端口 22,才能从旧基础设施无缝过渡。此 pod 必须对外公开,​​可从任何设备(即0.0.0.0/0)访问。除了特定虚拟机外,我们的 GCP 网络上的端口 22 已被屏蔽,以确保合规性,此屏蔽涵盖了我们的 k8s 节点。

我们想出了三个解决方案,但我们都不想实施,它们是:

  • 使用集群作为目标标签,暴露整个集群(风险太大/不合规)
  • 将 pod 限制到一个节点,并且仅公开该节点(无冗余)
  • 专门为此服务创建一个新的节点池,并且仅公开该节点池(具有冗余但成本高昂)

有没有什么方法我上面没有列出,可以让我们公开这个 pod/负载均衡器而不公开网络的其他部分?

答案1

当你暴露你的 pod 或部署时,你可以使用服务。对于您的用例,您将需要使用服务类型 LoadBalancer,它将创建一个外部端点(外部 IP)和一个相应的 GCE 网络负载均衡器。然后,流量将从负载均衡器转发到节点端口(在 30000 范围内),然后将流量转发到目标端口,在您的情况下是端口 22。

这意味着 pod 暴露了端口 22,但 GKE 节点 (GCE VM) 暴露了端口 30xxx。GKE 将为您创建适当的防火墙规则。

此外,如果您担心安全问题,您还可以根据源范围过滤流量

相关内容