# EMQX 配置

# 任务目标

如何使用 bootstrapConfig 字段修改 EMQX 节点配置。

# 配置 EMQX 集群

EMQX 主配置文件为 emqx.conf,从 5.0 版本开始,EMQX 采用 HOCON (opens new window) 作为配置文件格式。

EMQX CRD 支持使用 .spec.bootstrapConfig 字段配置 EMQX 集群,bootstrapConfig 配置可以参考文档:bootstrapConfig (opens new window)。这个字段只允许在创建 EMQX 集群的时候配置,不支持更新。

提示

如果在创建 EMQX 之后需要修改集群配置,请通过 EMQX Dashboard 进行修改。

apiVersion: apps.emqx.io/v2alpha1
kind: EMQX
metadata:
  name: emqx
spec:
  image: emqx:5.0
  bootstrapConfig: |
   listeners.tcp.test {
      bind = "0.0.0.0:1884"
      max_connections = 1024000
    }
1
2
3
4
5
6
7
8
9
10
11

.spec.bootstrapConfig 字段里面,我们为 EMQX 集群配置了一个 TCP listener,这个 listener 名称为:test,监听的端口为:1884。

将上述内容保存为:emqx-bootstrapConfig.yaml,并执行如下命令部署 EMQX 集群:

$ kubectl apply -f emqx-bootstrapConfig.yaml

emqx.apps.emqx.io/emqx created
1
2
3

检查 EMQX 集群状态,请确保 STATUSRunning,这可能需要一些时间等待 EMQX 集群准备就绪。

$ kubectl get emqx

NAME   IMAGE      STATUS    AGE
emqx   emqx:5.0   Running   2m55s
1
2
3
4

# 验证配置更改

查看 EMQX 集群 listener 信息

kubectl exec -it emqx-core-0 -c emqx -- emqx_ctl listeners
1

输出类似于:

tcp:default
  listen_on       : 0.0.0.0:1883
  acceptors       : 16
  proxy_protocol  : false
  running         : true
  current_conn    : 0
  max_conns       : 1024000
tcp:test
  listen_on       : 0.0.0.0:1884
  acceptors       : 16
  proxy_protocol  : false
  running         : true
  current_conn    : 0
  max_conns       : 1024000
1
2
3
4
5
6
7
8
9
10
11
12
13
14

从输出结果可以看到我们配置的名称为 test 的 listener 已经生效。