我是 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'
谢谢