Kubernetes:通过入口将非HTTP请求路由到容器 我在Mac OS上使用与docker捆绑的本地kubernetes 我已经安装了 我设法将外部http发送到kubernetes管理的容器(例如,从本地浏览器)。所有请求都通过nginx端口80或443发送

Kubernetes:通过入口将非HTTP请求路由到容器 我在Mac OS上使用与docker捆绑的本地kubernetes 我已经安装了 我设法将外部http发送到kubernetes管理的容器(例如,从本地浏览器)。所有请求都通过nginx端口80或443发送,kubernetes,kubernetes-ingress,Kubernetes,Kubernetes Ingress,问题是,我只能通过我的ngnix控制器路由http或https请求。 如何通过入口将非HTTP请求(如数据库或corba)发送到我的容器?入口机制不支持这一点,这是一个问题。 有一种使用nginx入口的tcp或udp流量解决方案,它将使用configmap将暴露的端口映射到kubernetes服务。 看 使用tcp服务configmap(和/或udp服务configmap)参数启动入口控制器 args: - "/nginx-ingress-controller" - "--tcp-servic

问题是,我只能通过我的ngnix控制器路由http或https请求。
如何通过入口将非HTTP请求(如数据库或corba)发送到我的容器?

入口机制不支持这一点,这是一个问题。
有一种使用nginx入口的tcp或udp流量解决方案,它将使用configmap将暴露的端口映射到kubernetes服务。

使用
tcp服务configmap
(和/或
udp服务configmap
)参数启动入口控制器

args: 
- "/nginx-ingress-controller"
- "--tcp-services-configmap=default/nginx-tcp-configmap"
- "--v=2"
部署配置映射:

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-tcp-configmap
data:
  9000: "default/example-service:8080"

其中,
9000
是暴露端口,
8080
是服务端口

我正在裸机服务器上使用nginx入口控制器。为了从所有节点访问托管站点,我将其创建为守护程序集,而不是部署()

该解决方案运行良好,并完美集成了入口规范的更新

为了使TS服务器可用,我更改了nginx-ingress-controller.yml中POD的参数,如stacksonstacks所述:

/nginx-ingress-controller
  --configmap=$(POD_NAMESPACE)/nginx-configuration
  --publish-service=$(POD_NAMESPACE)/ingress-nginx
  --annotations-prefix=nginx.ingress.kubernetes.io
  --tcp-services-configmap=default/tcp-ingress-configmap
  --udp-services-configmap=default/udp-ingress-configmap
不幸的是,在应用更改后的规范时,守护程序没有自动重新创建POD,因此在检查POD时,我仍然有旧的参数:

/nginx-ingress-controller
  --configmap=$(POD_NAMESPACE)/nginx-configuration
  --publish-service=$(POD_NAMESPACE)/ingress-nginx
  --annotations-prefix=nginx.ingress.kubernetes.io
使用
kubectl--namespace ingres nginx delete pod--all
删除ingress nginx名称空间内的pod,使控制器创建了新的pod,最后主机网络上的端口可用


我知道情况可能有点不同,但希望有人能用它节省几分钟。

组合入口控制器参数是否正确?因此,我有两个配置映射:--configmap=nginx-ingres/nginx-PLUS--tcp-services-configmap=default/nginx-tcp-configmap“不幸的是,该解决方案不适用于我:暴露的端口不可访问。我必须告诉kubernetes其他地方去暴露那个端口吗?configmap真的足够吗?从上面的示例来看,端口9000暴露在nginx入口控制器内。您可以通过执行kubectl exec-it bash和netstat-nltp | grep9000来检查它。但是,我不知道如何从外部访问此端口?您知道如何使用helm执行此操作吗?
查看此文档
链接已失效。是否有人可以提供服务、configMap和ingress的完整清单文件,以便使用ingress在kubernetes部署简单的sftp应用程序?