0

我是 VerneMQ 和 K8s 的新手。我在 GKE 上部署了一个有效的 VerneMQ docker 映像(由源代码制作),并部署了 2 个副本。它们工作正常,我必须手动连接到一个容器并弹出:

vmq-admin cluster join discovery-node=<OtherClusterNode>

这样他们就可以找到彼此并加入 VerneMQ 集群。

有没有办法在容器启动时相互发现并加入集群?,而不是每次我重建容器时手动

我正在考虑以某种方式修复每个凡尔纳节点名称并运行脚本(仅在一个容器中)以加入集群,但感觉很hacky。

我的主要问题是,在容器启动和vmq-admin cluster join命令执行之间,我有 2 个独立的 vernemq 服务器,一个订阅者可能连接到与消费者不同的服务器。

我的部署 yaml 看起来像:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: broker-verne-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      servicio: bkr-verne
  template:
    metadata:
      labels:
        servicio: bkr-verne
    spec:
      containers:
        - name: broker-verne
          image: gcr.io/<my project id>/broker-verne/master
          ports:
            - containerPort: 80
            - containerPort: 1883
            - containerPort: 8883
            - containerPort: 8888
            - containerPort: 8080
          env:
            - name: DOCKER_VERNEMQ_LOG__CONSOLE
              value: 'both'
            - name: DOCKER_VERNEMQ_LOG__CONSOLE__LEVEL
              value: 'debug'

谢谢

4

0 回答 0