Проблема масштабирования узлов кластера 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
Большое спасибо Джованни