Проблема масштабирования узлов кластера Galera

У меня очень специфическая проблема. Я использую Rancher для управления моими док-контейнерами и использую шаблон сообщества Galera Cluster. Я добавил второй хост в мою настройку, и если я сейчас масштабирую процесс загрузки - он продолжает говорить

level=fatal msg="недопустимый символ '<' ищет начало значения"

Я не могу действительно проследить ошибку, и при этом у меня нет идеи, где искать.

Мои исследования до сих пор - это может быть связано с протоколлами связи хоста (http против https), так как другие люди имели эту ошибку.

Мой вопрос - как я могу отследить / отладить и исправить эту ошибку?

Additional information:
Docker Version on both hosts: 1.12.5
Rancher Version: v1.1.4

Если вам нужно что-то еще - я буду рад предоставить больше информации.

1 ответ

Решение

Мне потребовалось время, чтобы понять это. На самом деле это не проблема с шаблоном или самим кластером Galera. Проблема заключается в том, как ранчер / докер извлекает IP-адрес в среде. Причина в том, что Ubuntu поставляется по умолчанию с использованием DNS-сервера в качестве локального адреса 127.0.0.1 и является разработкой. Проблема в том, что Docker-контейнеры не могут искать в 127.0.0.1.

Смотрите ваш файл /etc/resolv.conf

Выполните тест:

docker run -it ubuntu bash
apt update
apt install dnsutils
# This will not respond
dig @127.0.0.1 your.hostname.com

Примечание: ping будет работать нормально и может обмануть вас, думая, что разрешение имен работает. Копать это правильный способ сделать это.

Вы также можете использовать Rancher Cli, чтобы получить подсказку о проблеме:

mkdir -p support
rancher hosts -a > support/hosts
rancher logs --tail=-1 ipsec/ipsec > support/ipsec 2>&1
rancher logs --tail=-1 network-services/metadata > support/metadata 2>&1
rancher logs --tail=-1 network-services/network-manager > support/network-manager 2>&1

Решение:

Есть два решения:

1 - Настройте Ubuntu для использования другого сервера имен, например, Google Public DNS (8.8.8.8, 8.8.4.4). Я пробую это, и оно слишком сложно для простого изменения, как уже говорилось, Ubuntu использует это по своему замыслу.

2 - Сменить докер днс сервер. Это работало нормально для меня. Вы отредактируете или создадите файл /etc/docker/daemon.json и поставите строку:

{
  "dns": ["8.8.8.8", "8.8.4.4"]
}

Остановите контейнеры и перезапустите демон:

docker stop $(docker ps -q)
docker stop $(docker ps -q) # yes twice :-) rancher will try do restart your dying containers
systemctl restart docker

Большое спасибо Джованни

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