连接边缘节点本地baetyl-broker服务
更新时间:2020-12-23
背景描述
从 baetyl 2.1.1 版本开始,所有官方应用(baetyl-broker,baetyl-function,baetyl-rule)都默认集成baetyl-go-sdk,由baetyl-core负责这些官方应用的证书签发,服务间调用默认使用baetyl-core签发的证书进行认证。
开发者如果要想访问本地baetyl-broker,对baetyl-broker进行配置,开放外部访问。设置访问broker用户名和密码,并绑定宿主机监听端口,这样在任何机器上使用MQTT Client都可以使用host_machne_ip:port
访问baetyl-broker服务。
本文会对以上方案进行讲解。
操作指南
节点安装
参考快速入门安装边缘节点。在边缘端执行完安装命令以后,通过kubectl
命令查看baetyl-edge-system
命名空间内的系统应用。
root@userver-desk:~# kubectl get pod -n baetyl-edge-system
NAME READY STATUS RESTARTS AGE
baetyl-init-d968b7bb9-c8b22 1/1 Running 0 3h24m
baetyl-core-7d5995f956-7jszr 1/1 Running 0 3h24m
baetyl-rule-5f4d7f964-xprx8 1/1 Running 0 3h24m
baetyl-function-6c7fd69f44-xwnxk 1/1 Running 0 3h24m
baetyl-broker-6f9cbbd794-rb9p7 1/1 Running 0 3h24m
baetyl-broker端口绑定本地8883端口
进入到边缘节点,点击应用部署,找到baetyl-broker应用,点击查看,如下图所示:
进入到baetyl-broker应用界面,点击配置,如下图所示:
在端口映射——>宿主机端口那里添加一条端口映射记录,如下图所示:
- 宿主机端口:8883
- 容器端口:8883
- 协议:TCP
返回应用配置界面,切到数据卷页面,点击baetyl-broker-conf这个配置卷,如下图所示:
进入配置项配置页面,点击编辑,如下图所示:
在conf.yaml配置界面,输入以下配置信息,下图所示:
session:
sysTopics:
- $link
- $baetyl
logger:
level: debug
encoding: console
listeners:
- address: 'tcp://0.0.0.0:8883'
principals:
- username: test
password: test
permissions:
- action: pub
permit:
- '#'
- action: sub
permit:
- '#'
配置解析:
- 为baetyl-broker增加
8883
监听端口,使用test/test
这样的用户名密码进行访问,该用户具有#
这个topic的pub/sub
权限。- 这里不一定必须是8883,可以是其他任何没有用过的端口,可以使用
netstat -ap | grep 8883
这个命令查看8883端口是否被占用
使用MQTT Box访问
在工作PC上安装MQTT Box,配置连接信息,如下图所示:
返回MQTT Box,可以看到连接状态是Connected,测试消息订阅与发送,如下图所示: