есть докер сварм кластер с 5ю менеджерами (был до моего прихода).
Внутри него крутится несколько не пересекающихся external сетей /24 (overlay). Периодически (раз в несколько дней) при деплое (15 реплик сервиса), на разных нодах, разным контейнерам выдаётся один и тот же IP и MAC адреса.
Получается конфликт ip адресов и сервис начинает терять часть запросов при обращении к нему.
Установка докера базовая. Занято на серверах, судя по docker network inspect не более 30ip из external сети.
В кубер запланирован переезд только через 1-2 месяца. Поэтому фиксануть хочется сейчас, чтобы не сидеть и убивать вручную ноды, которые дублируются по ip.
Ранее, работал только с кубером, а тут сворм. Как эту ерунду можно пофиксить?
Если маки дерутся меж собой, это говорит или о мисконфиге или о мисюзе, сложно посоветовать не понимая почему они дерутся, это может быть и кривое dhcp и кривой статикарп, у вас оверлей, то хотя бы как вы присылаете в образ ip?
Не совсем вдуплил вопрос. Ip мы никуда в образ не присылаем. Создали сеть, написали yml, делаем деплой в стек. Примерно верно выглядит так: # создали сеть docker network create tech-net -d overlay # compose для деплоя version: '3.4' services: app: image: mainapp:latest networks: - base-net hostname: mainapp deploy: replicas: 15 update_config: parallelism: 1 delay: 3s order: start-first restart_policy: condition: on-failure networks: base-net: external: true # потом просто деплой docker stack deploy -c app.yml mainapp --with-registry-auth
А, я просто подумал грешным делом что у вас VX как положено, а у Вас маквлан на бриджах судя по-всему. Самый простой вариант сделать статичный арп с привязкой ip-мас и отдавать при создании сервиса так чтобы исключить пересечения (а потом уехать в кубер и забыть этот кошмар): static-network: ipv4_address: a.b.c.d
Обсуждают сегодня