首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么入口-nginx控制器tcp-services不工作?

为什么入口-nginx控制器tcp-services不工作?
EN

Stack Overflow用户
提问于 2020-02-14 17:08:18
回答 1查看 423关注 0票数 1

我正在尝试通过ingress-nginx tcp-services公开一个RabbitMQ ssl端口,如下所示:

代码语言:javascript
复制
$ cat rabbit-expose-amqps.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: ingress-nginx
data:
  5671: "dev/rabbitmq-rabbitmq-ha:5671"

( RabbitMQ服务已经在此端口上侦听),但是任何执行openssl s_client -connect my-external-host:5671的尝试都会超时,当然,使用amqplib连接到amqps://my-extrenal-host:5671的任何尝试也会超时。不过,管理UI可以正常工作,因此我知道外部IP是正确的。

似乎我的ingress nginx pod中的nginx.conf得到了更新,但有些奇怪的事情(我认为):它确实在5671端口上配置了一个侦听器,但上游仍然显示地址为0.0.0.1:1234的"placeholder“。我甚至回收了pod,以防万一,仍然是相同的conf文件:

代码语言:javascript
复制
stream {
    upstream upstream_balancer {
            server 0.0.0.1:1234; # placeholder

            balancer_by_lua_block {
                    tcp_udp_balancer.balance()
            }
    }
    ...
    # TCP services
    server {
        preread_by_lua_block {
            ngx.var.proxy_upstream_name="tcp-dev-rabbitmq-rabbitmq-ha-5671";
        }
        listen                  5671;
        proxy_timeout           600s;
        proxy_pass              upstream_balancer;

    }
}

如何正确应用tcp-services?

EN

回答 1

Stack Overflow用户

发布于 2020-02-19 02:28:16

找到了解决方案: nginx-ingress是使用他们的"mandatory.yaml“文件安装的,而不是通过Helm。查看nginx-ingress helm图表,似乎为了暴露tcp服务端口,有更多的资源需要配置。如果我直接使用舵图而不是yaml,端口就会正确地显示出来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60223163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档