我一直在尝试在 Kubernetes 空间中设置 ChirpStack,但它似乎对我不起作用,而且我在网上找不到任何解决方案的资源。
**chirpstack-application-server-6d6f8d699c-nlrmx 1/1 Running 0 44s\
chirpstack-gateway-bridge-5454b7f9f-fm5wl 1/1 Running 0 73s\
chirpstack-mosquitto-646899d74d-d7bhl 0/1 CrashLoopBackOff 3 85s\
chirpstack-network-server-66cdf9bdf7-rhzg5 1/1 Running 0 55s**
Run Code Online (Sandbox Code Playgroud)
上面是我有自动取款机的每个吊舱。应用程序服务器、网络服务器、网关桥都启动并运行,但是 Mosquitto 代理转到“完成”并直接进入 CrashLoopBackOff。
我认为这可能与缺乏配置有关,因此我花了几天时间将 mosquitto.conf 文件与“allow_anonymous true”放在一起,希望能够从我的任何 ChirpStack 组件获得连接,但日志只是指示 mqtt 连接被拒绝错误。
kubectl 日志的输出 chirpstack-application-server
time="2020-12-10T15:01:41Z" level=error msg="integration/mqtt: connecting to broker error, will retry in 2s: Network Error : dial tcp 10.244.146.236:1883: i/o timeout"
Run Code Online (Sandbox Code Playgroud)
因为无法建立连接,所以我认为情况恰恰相反,我需要添加password_file并将allow_anonymous设置为false。以下是我当前的配置,如果有人可能知道出了什么问题。
configMap-1.yml
kind: ConfigMap
metadata:
name: mosquitto-password
namespace: ****
labels:
app: chirpstack-mosquitto
data:
password_file.txt: |
admin:admin
user:user
app-server:app-server
net-server:net-server
gateway-bridge:gateway-bridge
Run Code Online (Sandbox Code Playgroud)
配置映射.yml
kind: …Run Code Online (Sandbox Code Playgroud) 在我的生产服务器中,我们有几个上游,它们是在带有 nginx 的反向代理后面运行的 docker 容器。其中一个容器是 mqtt 代理(mosquitto),我们用来通过 websockets 进行连接。这是我们的 nginx.conf 文件:
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream br-frontend {
server br-frontend:3000;
}
upstream br-backend {
server br-backend:5000;
}
upstream mosquitto {
server mosquitto:9001;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
ssl_certificate /etc/nginx/certs/server.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
server {
listen 443 ssl default_server;
server_name _;
location / {
proxy_pass http://br-frontend/;
}
location /api {
proxy_pass http://br-backend;
}
location /swagger.json {
proxy_pass http://br-backend/swagger.json;
}
location /swaggerui { …Run Code Online (Sandbox Code Playgroud)