如何使用Istio在Kubernetes上运行Mosquitto?
我在订阅和发布运行在Kubernetes群集上的Mosquetto服务器时遇到问题 我知道我的服务和吊舱在工作。我可以使用我的MOSQUITO服务作为主机从集群内部进行订阅和发布 我也有一个工作的HTTPS网关,所以我可以从外面访问,我可以看到它到达我的mosquitto容器上的端口1883。容器日志:如何使用Istio在Kubernetes上运行Mosquitto?,kubernetes,istio,mosquitto,Kubernetes,Istio,Mosquitto,我在订阅和发布运行在Kubernetes群集上的Mosquetto服务器时遇到问题 我知道我的服务和吊舱在工作。我可以使用我的MOSQUITO服务作为主机从集群内部进行订阅和发布 我也有一个工作的HTTPS网关,所以我可以从外面访问,我可以看到它到达我的mosquitto容器上的端口1883。容器日志: New connection from 127.0.0.1 on port 1883. Client <unknown> disconnected due to protocol e
New connection from 127.0.0.1 on port 1883.
Client <unknown> disconnected due to protocol error.
端口1883上127.0.0.1的新连接。
由于协议错误,客户端已断开连接。
我猜这是预期的行为。因为我是通过https而不是mqtt访问它的
现在,我无法使用以下方式连接到容器:
$ mosquitto_pub --url mqtt://mosquittourl.com.br:<port>/test
$mosquitto\u pub——urlmqtt://mosquittourl.com.br:/test
如何正确设置Istio资源,以便订阅并发布到MOSQUITO服务器?有没有办法将Istio配置为接受mqtt请求并将它们重定向到我的MOSQUITO服务?我最近能够获得Istio设置,以将TLS加密的mqtt连接路由到 Mosquitto在Kubernetes上的一个集装箱里跑步。您应该使用TLS作为中端口的
协议。最终,Istio可能会像支持gRPC和Mongo一样支持MQTT选项,但现在您需要使用TCP实现未加密的MQTT流量,使用TLS实现安全的MQTT连接
要确保正确配置以使其正常工作,您几乎不需要做什么
Istio运算符配置文件yaml文件
对于为Istio配置主负载平衡器的IstioOperator
,您需要确保设置正确的端口。对于安全的MQTT流量,这是8883(从技术上讲,您可以使用任何端口,但8883是默认端口)
apiVersion:install.istio.io/v1alpha1
种类:IstioOperator
规格:
网格配置:
accessLogFile:/dev/stdout
组件:
出口通道:
-名称:istio出口网关
已启用:true
k8s:
资源:
请求:
中央处理器:10米
内存:40Mi
入口通道:
-姓名:istio ingressgateway
已启用:true
k8s:
资源:
请求:
中央处理器:10米
内存:40Mi
服务:
端口:
-港口:15021
目标港:15021
名称:状态端口
-港口:31400
目标港:31400
名称:tcp
#这是发生sni路由的端口
-港口:15443
目标港:15443
名称:tls
-港口:8883
目标港:8883
名称:mqtt-secure
飞行员:
k8s:
环境:
-名称:导频跟踪采样
值:“100”
资源:
请求:
中央处理器:10米
内存:100Mi
价值观:
全球的:
代理:
资源:
请求:
中央处理器:10米
内存:40Mi
飞行员:
自动缩放已启用:false
网关:
istio出口网关:
自动缩放已启用:false
istio ingressgateway:
自动缩放已启用:false
runAsRoot:对
tls:
块告诉网关使用指定的SSL证书终止tls
apiVersion:networking.istio.io/v1alpha3
种类:网关
元数据:
名称:我的mqtt ssl网关
规格:
选择器:
istio:ingressgateway#使用istio默认控制器
服务器:
-端口:
电话:8883
名称:mqtt-secure
协议:TLS
主持人:
- "*"
tls:
证书名称:cert-my.certname.com
模式:简单
私钥:sds
服务器证书:sds
我是否正确理解您正在使用HTTPS代理连接到MQTT客户端?如果是这样的话,你认为这会起什么作用?为什么您认为将MQTT客户机连接到HTTPS服务器会有任何用处?我理解问题描述中的情况是这样的,它不应该起作用。我在寻求一种解决方法。例如,如何设置Istio以接受mqtt请求并将它们重定向到MOSQUITO服务。如果可能的话。或者我猜在你的情况下应该是TCP。你能加上你的YAML吗?你是istio网格中的MOSQUITO服务器?您是否如@ashu所述,将入口网关上的1883端口添加并配置为TCP?还有一篇关于这个的帖子,也许你会在这里找到一些有用的东西。