微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kubernetes NGINX Ingŕess 控制器 TCP/MQTT 配置

如何解决Kubernetes NGINX Ingŕess 控制器 TCP/MQTT 配置

我有一个 Kubernetes 集群,其中包含一个适用于一个 REST API 的有效 Ingress 配置。现在我想向这个配置添加一个端口转发到我的 mqtt 适配器,但是我在找到一种向配置添加 TCP 规则的方法时遇到了问题。 Kubernetes 文档仅显示一个 HTTP 示例。 https://kubernetes.io/docs/concepts/services-networking/ingress/

我对 Kubernetes 还很陌生,我在适应其他配置时遇到了问题,因为我发现的内容与我在 Kubernetes 文档中发现的完全不同。

我使用了一个带有 letencrypt 的常规 Nginx 网络服务器来保护 TCP 连接。我希望这也适用于入口控制器。

我的目标是通过带有 TLS 的 MQTT 向我的集群发送消息。 有人有正确的文档或知道如何添加配置吗?

我的配置如下:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
Metadata:
  name: ratings-web-ingress
  annotations:
    kubernetes.io/ingress.class: Nginx
    cert-manager.io/cluster-issuer: letsencrypt
spec:
  tls:
    - hosts: 
      - example.com
      secretName: ratings-web-cert
  
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          serviceName: test-api
          servicePort: 8080
        path: /

解决方法

Ingress 系统一般只处理 HTTP 流量。一些入口控制器支持非 HTTP 数据包处理的自定义扩展,但每个控制器都不同。 https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/ 展示了如何专门针对 ingress-nginx 执行此操作,如图所示,您可以通过某些 ConfigMap 完全带外配置它,而不是通过 Ingress 对象。

您可能真正想要的是 LoadBalancer 类型的服务对象。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?