Невозможно получить доступ к серверу ejabberd даже в ejabberdctl, если имя ejabberdnode изменено при развертывании GCP с использованием переменной среды.

В качестве первого шага в использовании кластера ejabberd в GCP я попытался изменить имя узла, используя переменную среды «ERLANG_NODE_ARG=ejabberd@main», как указано в файле readme.

Но я не могу получить доступ к серверу ejabberd в сервисе. Я попытался проверить статус с помощью ejabberdctl, команда запуска возвращает сообщение об уже работающем узле, а команда состояния возвращает сообщение об отключении узла. введите сюда описание изображения

Я хочу создать кластер 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.

Я проверил файл ejabberd.log и файл error.log внутри контейнера с помощью CloudShell, в error.log нет записей, и все комментарии в ejabberd.log соответствуют журналу ejabberd, протестированному на локальном компьютере. Я не мог найти, почему это не работает в GCP. Можете ли вы помочь мне определить причину этой проблемы и предложить рекомендации по развертыванию ejabberd в кластере GCP?

1 ответ

Похоже, проблема заключается в формате именования узлов ejabberd. Я последовал предложениям, представленным в запросе GitHub , и использовал имя в формате имя@(имя_хоста/имя_компьютера/имя_контиайнера), и это сработало. Я могу получить доступ к службе ejabberd с указанным именем узла.

Другие вопросы по тегам