Назад |
Перейти на главную страницу
Устранение неполадок службы докеров Docker Swarm cURL между узлами через оверлейную сеть
Я установил Docker Swarm с тремя узлами. Я могу проверить связь, но не могу скрутить службу докеров, которая в конечном итоге развернута на хосте B из контейнера докеров на хосте A. Что мне не хватает? Что еще я могу сделать для устранения неполадок?
Хост-среда: один менеджер, два рабочих. Предоставляется через OpenStack (за кулисами есть элемент виртуализации в инфраструктуре). Рой работает на CentOS 7. SELinux отключен. все службы докеров находятся в оверлейной сети через:
docker network create --driver=overlay --opt com.docker.network.driver.mtu=1200 --attachable proxy-overlay
узел менеджера через:
docker swarm init --advertise-addr <manager-public-ip> --data-path-port 8091
и присоединение через рабочих через:
docker swarm join --token <token-from-init> --advertise-addr <worker-ip> <manager-public-ip>:2377
Вот разные вещи, которые я пробовал, и я ожидаю, что все они сработают. пункты 6 и 7 - это то, что я пытаюсь решить.
- Я могу проверить связь с хостом A на хосте B
- Я могу сделать локон с хоста А на хост Б.
- Я могу пинговать изнутри контейнера, запущенного на хосте A, на хост B
- Я могу скручиваться изнутри контейнера, запущенного на хосте A, на хост B
- Я могу пинговать службу докеров из контейнера, работающего на хосте A, который DNS разрешает в контейнер, работающий на хосте B.
- Я не могу скрутить службу докеров из контейнера, работающего на хосте A, который DNS разрешает в контейнер, работающий на хосте B.
- Я не могу скрутить разрешенный DNS IP-адрес контейнера, работающего на хосте B (точка 5), из контейнера, работающего на хосте A.
- Я могу скрутить службу докеров из другого контейнера докеров. Контейнеры IFF находятся на том же хосте.
Конечная ошибка оказывается:
curl: (7) Не удалось подключиться к порту 80: Истекло время ожидания подключения
Некоторые области, которые я исследовал:
- Удаление всех правил iptable
- Уменьшение MTU до 1200 (устанавливается в /etc/docker/daemon.json, а затем вручную создается
docker_gwbridge
сети с помощью шагов, описанных в документации докера.) - Обеспечение того, чтобы группа безопасности открывала вход / выход (OpenStack)
- Гарантированные изменения MTU распространяются на все узлы (поэтому они не сбрасываются на сетевом уровне.
- Убедитесь, что оверлейная сеть верна / распространяется на всех узлах
- Сопоставленные IP-адреса из приведенных выше шагов с IP-адресами из различных проверок докеров.
- Я видел, как некоторые виртуальные инфраструктуры иногда используют порт 4789 для связи, поэтому я изменил порт докера на 8091, но попробовал оба порта.
Если позволит время, я пойду и свяжу несколько десятков страниц с проблемами github и веб-страниц документации докеров, на которые я ссылался в приведенной выше информации.