如果在 GCP 部署中使用环境变量更改了 ejabberdnode 名称,则即使在 ejabberdctl 中也无法访问 ejabberd 服务器

如果在 GCP 部署中使用环境变量更改了 ejabberdnode 名称,则即使在 ejabberdctl 中也无法访问 ejabberd 服务器

作为在 GCP 中使用 ejabberd 集群的第一步,我尝试使用自述文件中提到的环境变量“ERLANG_NODE_ARG=ejabberd@main”来更改节点名称。

但我无法访问服务中的 ejabberd 服务器。我尝试使用 ejabberdctl 检查状态,start 命令返回节点已在运行消息,而 status 命令返回节点已关闭消息。在此处输入图像描述

我想创建一个 ejabberd 集群。下面是我的部署文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: main
spec:
  replicas: 1
  selector:
    matchLabels:
      app: main
  template:
    metadata:
      labels:
        app: main
    spec:
      containers:
        - name: main
          image: ejabberd/ecs
          env:
            - name: ERLANG_NODE_ARG
              value: ejabberd@main
          #   - name: ERLANG_COOKIE
          #     value: dummycookie123
            # - name: CTL_ON_CREATE
            #   value: "register admin localhost asd"
          ports:
            - containerPort: 5222
            - containerPort: 5269
            - containerPort: 5280
            - containerPort: 5443

我正在尝试通过定义服务来访问上述部署。如果我删除添加以更改节点名称的环境变量,我就可以访问该服务,但当我在 YAML 文件中包含该变量时,它会失败。

我使用 cloudshell 检查了容器内的 ejabberd.log 文件和 error.log 文件,error.log 中没有任何条目,ejabberd.log 中的所有注释都与本地机器上测试的 ejabberd 的日志相匹配。我找不到 GCP 中失败的原因。您能帮我找出此问题的原因并提出有关在 GCP 集群中部署 ejabberd 的指导方针吗?

答案1

ejabberd 节点命名格式似乎是问题所在。我按照GitHub 查询并使用以下格式的名称名称@(主机名/机器名/容器名)并且成功了。我能够使用提供的节点名称访问 ejabberd 服务。

相关内容