k8s部署的emqx 外部Nginx二级代理访问Emqx Dashboard

k8s部署基本完全参照以下部署模式

  • $cat deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: emqx-deployment
labels:
app: emqx
spec:
replicas: 3
selector:
matchLabels:
app: emqx
template:
metadata:
labels:
app: emqx
spec:
serviceAccountName: emqx
containers:
- name: emqx
image: emqx/emqx:v4.1-rc.1
ports:
- name: mqtt
containerPort: 1883
- name: mqttssl
containerPort: 8883
- name: mgmt
containerPort: 8081
- name: ws
containerPort: 8083
- name: wss
containerPort: 8084
- name: dashboard
containerPort: 18083
envFrom:
- configMapRef:
name: emqx-config

  • $cat statefulset.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: emqx-statefulset
labels:
app: emqx
spec:
serviceName: emqx-headless
updateStrategy:
type: RollingUpdate
replicas: 3
selector:
matchLabels:
app: emqx
template:
metadata:
labels:
app: emqx
spec:
serviceAccountName: emqx
containers:
- name: emqx
image: emqx/emqx:v4.1-rc.1
ports:
- name: mqtt
containerPort: 1883
- name: mqttssl
containerPort: 8883
- name: mgmt
containerPort: 8081
- name: ws
containerPort: 8083
- name: wss
containerPort: 8084
- name: dashboard
containerPort: 18083
envFrom:
- configMapRef:
name: emqx-config

Nginx代理服务器 如下二级代理
location /dashoard/ {

		# 去掉路径前缀,并转发到后端
		# rewrite ^/dashoard/(.*)$ /$1 break;
		proxy_pass http://10.98.150.100:31083/; # NodePort端口
		
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		
		# WebSocket 支持
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "upgrade";
	}

目前https域名访问
static及其他资源加载404,如下范例
[05/Dec/2024:13:13:19 +0800] “GET /static/css/font-awesome.min.css HTTP/1.1” 404 187 “https://iot.apple-china-app.cn/dashoard/” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36”

咨询 emqx dashoard 是否需要额外配置?k8s配置是否改动

这个文章太老了,你看他 image 都是用的 emqx/emqx:v4.1-rc.1 都老到过了维护周期了。
用 k8s 的话,强烈推荐使用 GitHub - emqx/emqx-operator: A Kubernetes Operator for EMQX

那就是说老的版本不支持Dashboard 配置SSL访问?应该不影响mqtt:ssl的使用吧

支持的,我只是说这是一个不维护的老版本,有问题或 bug得自己想办法。
欢迎使用新版本。