首页 > 解决方案 > Kubernetes:从本地端口(UDP、TCP)到特定服务的流量转发

问题描述

我有一个具有公共 IP 地址的 EC2 实例(linux、kubernetes)。我想将数据流量转发到我的服务。

假设我的公共 IP 地址是:4.32.312.21 我没有外部 dns 或其他东西,我想要重定向流量,如下所示:

 - 4.32.312.21:6600 -> to service-a     //TCP traffic
 - 4.32.312.21:6500 -> to service-b     //UDP traffic

我的配置:

NAME         TYPE         CLUSTER-IP       EXTERNAL-IP   PORT(S)
service-a    ClusterIP    10.109.38.119    <none>        6600/TCP
service-b    ClusterIP    10.107.10.227    <none>        6500/UDP

我尝试使用 Node Port-s,但端口范围很大(从 30000 起),这不是解决方案。

标签: kubernetesload-balancingkubernetes-ingressnginx-ingresskubernetes-pod

解决方案


你必须使用 NodePort。为什么说这样的端口范围不是解决方案?

如果您出于任何原因想要坚持使用这些端口,那么,假设您不想添加更多元素,例如负载均衡器,您需要设置 iptables 规则以将您的 6500/6600 流量转发到 30000/30001例如。


推荐阅读