Nginx 用于路由TCP流量的入口控制器

Nginx 用于路由TCP流量的入口控制器,nginx,tcp,kubernetes,google-cloud-platform,nginx-ingress,Nginx,Tcp,Kubernetes,Google Cloud Platform,Nginx Ingress,我正在尝试设置一个入口控制器(nginx),将一些TCP流量转发给kubernetes服务(GCP)。有一个示例演示了如何使用nginx将HTTP流量路由到服务(基于路径)。我想有一个类似的设置转发TCP流量 在我的集群中,我有一个pod运行一个使用套接字用python编写的TCP echo服务器。吊舱上有一个服务。如果我将此服务的服务类型设置为LoadBalancer,我可以按如下方式运行我的客户机,并从集群获取回显 python client.py--主机--端口 与echo服务器类似,我

我正在尝试设置一个入口控制器(nginx),将一些TCP流量转发给kubernetes服务(GCP)。有一个示例演示了如何使用nginx将HTTP流量路由到服务(基于路径)。我想有一个类似的设置转发TCP流量

在我的集群中,我有一个pod运行一个使用套接字用python编写的TCP echo服务器。吊舱上有一个服务。如果我将此服务的服务类型设置为LoadBalancer,我可以按如下方式运行我的客户机,并从集群获取回显

python client.py--主机--端口
与echo服务器类似,我的集群中还有其他TCP服务,为其他POD提供服务。目前,我已将它们全部设置为LoadBalancer。因此,他们有外部IP,并监听不同端口上的流量。但是,我不想为所有这些服务创建负载平衡器。如何使用nginx根据端口号将TCP流量路由到不同的服务。如果nginx不能做到这一点,我是否可以使用其他选项来实现这一点


更新: 根据的答案,我创建了以下文件

apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: default
data:
  9000: "default/echo-service:50000"


然后我使用
kubectl create-f
创建配置映射和服务。因此,我希望可以使用新创建的服务的外部IP和端口9000,并运行
python client.py--host--port 9000
来运行我的echo客户端。然而,当我这样做时,我得到了一个连接拒绝错误。我做错什么了吗?

我在另一个帖子上回答了类似的问题

基本上,您可以在configmap中指定服务的端口和后端

以下是该文档的链接。

是您的
nginx入口控制器
pod在名称空间
default
中吗?是。我知道我应该使用多个名称空间,但目前我在默认名称空间中有入口。我忘记将--tcp services configmap=default/tcp services“
添加到nginx入口吊舱中的参数。它起作用了now@rasthiya如何将其添加到nginx入口吊舱中?我用azure安装程序安装了ingress nginx。它在我的系统上安装后就已经设置好了,但没有显示。@mjwrazor我已经修改了部署yaml文件。在Azure中没有做过类似的事情,但在google GKE中,您只需转到工作负载并编辑相应的yaml文件。您能在我的问题上帮助我吗?我把它完全去掉了。。。请如果你能在类似的问题上帮助我。虽然我安装“入口”作为服务在完全不同的方式使用头盔,这就是为什么我感到困惑。。。非常感谢。
apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: default
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: LoadBalancer
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
    - name: https
      port: 443
      targetPort: 443
      protocol: TCP
    - name: proxied-tcp-9000
      port: 9000
      targetPort: 9000
      protocol: TCP
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx