Невозможно получить доступ к серверу 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 с указанным именем узла.