kubernetes - 为什么 ThingsBoard 服务的 Kubernetes 配置文件将 TCP 用于 CoAP?
问题描述
我使用谷歌云平台上的 Kubernetes 来运行 thingsboard 服务,遵循以下步骤:https ://thingsboard.io/docs/user-guide/install/kubernetes/#tbyaml-file 。
问题是当 NB-IoT Shield(BC95) 通过 CoAP 协议在 5683 端口上发送数据时,TB 无法接收数据。我必须在 tb-service 中查看 Kubernetes 配置 YAML,发现 5683 端口是由 TCP 协议定义的。
clusterIP:10.23.242.112 externalTrafficPolicy:集群端口:-名称:ui nodePort:31146端口:8080协议:TCP targetPort:8080-名称:mqtt nodePort:32758端口:1883协议:TCP targetPort:1883-名称:coap nodePort:32343端口:5683 协议:TCP 目标端口:5683
问题是协议CoAP
应该是UDP
还是不应该?
解决方案
CoAP 本身可以在 TCP 和 UDP 上运行(分别由 coap+tcp:// 或 coap:// URI 表示)。据我所知,BC95 仅支持 UDP,因此您使用的是后者。
作为kubernetes 问题中的示例,您可能想尝试将协议系列设置为 UDP。两者都有用例,这可能是您的设置中有“TCP”的原因(虽然很奇怪;文档中的当前示例没有任何“协议:TCP”),但是对于这个客户端,您可能正在使用UDP。
推荐阅读
- node.js - 如何将 JSON 文件导出到 ExpressJS 中的 URL,然后还能够从该 URL 导入 JSON 文件?
- visual-studio-2017 - 检测到包降级:Microsoft.EntityFrameworkCore.SqlServer 从 2.2.6 到 2.2.4
- c - Packing a Float (IEEE-754) into uint64_t 代码的规范化部分
- python - 有人可以向我解释 map_coordinates 如何在 n 维数据集上工作吗?
- c - 带有 Frama-C 和 Eva 的动态阵列
- ruby - 无法通过 gem "ssh-net" 运行 Ruby 脚本
- android - 我正在使用 Glide 从 url 加载 gif 图像,但是它一直在循环
- python - anaconda 和 spyder 的新手。使用不同的 sys.executables
- entity-framework-6 - 如何将 ColumnAttribute 与 Translate 结合使用
在 EF6 中? - jupyter-notebook - 如何在 Colab 上创建非 root 帐户?