Alexey
Господа, а как правильно общаться между контейнерами в Swarm через ingress сеть дефолтную? Они там, насколько я помню, все друг для друга экспозят порты. Вот у меня есть такой сабж: Один микросервис реплицируемый должен другим отдавать данные по запросу. Я хочу понять как правильно конфигурировать остальные микросервисы для обращения к нему. Какой там должен быть хостнейм? Равный имени сервиса? И как в данном случае будет работать балансировка? Так же как при публикации портов наружу - будет баланситься между всеми инстансами?
Alexey
Потому что у конкретных тасков на разных нодах хостнеймы состоят из имени сервиса и суффикса ".n", где n - номер таска.
Konstantin
или tasks.name
Alexey
hostname = service_name = task.name
То есть, если контейнеры пойдут по имени сервиса, то им зарезолвит один из тасков, верно?
Konstantin
по дефолту зарезолвит балансер, у него свой IP
Alexey
А кто балансер? Текущий главный менеджер Swarm?
Konstantin
внутренности, да
Alexey
Ок. Спасибо.
Alexey
Ну я правильно понял, что если я все сервисы в рамках одного swarm кручу, мне не нужно ничего делать для их доступности друг для друга? Достаточно указать хостнеймы и они смогут достучаться друг до друга?
Alexey
Оверлейные сети мне будут нужны только если я их разделить по группам захочу, так?
Konstantin
оверлей для мультинод
Konstantin
хостнеймы не обязательно указывать, имя сервиса уже хостнейм
Alexey
оверлей для мультинод
Ну у меня две ноды. Но ingress же на обеих из них работает.
Alexey
хостнеймы не обязательно указывать, имя сервиса уже хостнейм
Я и имел в виду указать в качестве хостнейма, куда будут стучаться имя сервиса.
Alexey
А вот кстати нет. Ingress работает только на менеджере. Вот оно как получается. ТО есть, если я скейлю по нодам - мне нужен оверлей для связи между сервисами.
Alexey
Спасибо за подсказки.
Alexey
оверлей для мультинод
Кстати, я правильно понимаю, что для стабильности лучше всего на каждой физической машине держать по одному менеджеру чтобы он в случае падения другого подхватывал Swarm?
Alexey
что у тебя значит ingress?
Дефолтная сеть, которая создалась на менеджере при создании Swarm: docker network ls | fgrep ingress pawe0tt5djx3 ingress overlay swarm
Konstantin
так она и есть overlay
Alexey
https://docs.docker.com/engine/swarm/admin_guide/
О, этой доки ещё не видел. Благодарю.
Alexey
так она и есть overlay
Но на ноде-воркере я её не увидел.
Rishat
run --rm -it id bash
Что-то не то получается. Можно подробнее плиз. Сейчас пытался docker run --rm -it id bash но тут же вместо id image нужен.
🅰️rkadiy
все правильно, это если посмотреть что внутри контейнера
🅰️rkadiy
а так логи читайте
🅰️rkadiy
можно еще отредактировать compose и поменять команду
Rishat
У меня контейнер подымает docker-compose и когда я пытался указать id который взял с docker container ls -a мне говорит там должен быть image, даже если я указываю image, то я получаю новый контейнер и все. А я знаю где ошибка в конфиге, я хочу просто запустить контейнер чтобы он не упал и я смог исправить конфиг)
🅰️rkadiy
ну тогда не знаю, обычно конфиги лежат на хосте, и в контейнер монтируются. У меня по крайней мере
Rishat
Да, я тоже хотел монтировать, Но тупанул)
🅰️rkadiy
как вариант - создать новый image на основе отредактированного контейнера
🅰️rkadiy
https://docs.docker.com/engine/reference/commandline/commit/#parent-command
🅰️rkadiy
создаешь контейнер, меняешь конфиг, коммитишь
🅰️rkadiy
грязновато правда
Rishat
Блин, неужели нет такой фишки чтобы контейнер не падал из-за ошибки, а дальше работал(
Konstantin
Блин, неужели нет такой фишки чтобы контейнер не падал из-за ошибки, а дальше работал(
падает не контейнер, а процесс внутри. Собери нормальный образ и будет всё ок
Rishat
Ладно)) Спасибо всем)) Сейчас еще раз сделаю все)) Но теперь конфиг маунт сделаю))
Konstantin
Я не пойму в чем сложность? Новый образ собрать - это почти всегда пара секунд
Konstantin
Ты потратил на решение задачи через задний проход больше времени
Alexey
Господа, а можно как-то получить не обрезанный выхлоп docker service create? А то у меня ошибка режется. Выглядит так: tafhdrhj5yt8tzg2gvyeg1ixc overall progress: 0 out of 2 tasks 1/2: starting container failed: error creating external connectivity network: c… 2/2: starting container failed: error creating external connectivity network: c…
Konstantin
docker service (ps|logs)
Alexey
Благодарю. В docker service ps есть --no-trunc.
Alexey
Почему его не добавили в create - непонятно.
Konstantin
Он вообще до недавнего времени был detached=true
Alexey
В итоге оказалось, что это не моя беда, а ядро, походу, нехорошо сконфигурено. starting container failed: error creating external connectivity network: cannot restrict inter-container communication: please ensure that br_netfilter kernel module is loaded
Konstantin
Хз, там кроме exit code ничего не нужно имхо
Konstantin
Дай угадаю - debian?🙄
Alexey
Дай угадаю - debian?🙄
Ubuntu 18.04.1 Передал админам страдать.
Konstantin
О, я пока с 16.04 не слезаю, но скоро придется
Alexey
У меня личные машинки вообще частично на Gentoo и мне как-то проблем не составляет модуль добавить, если что. Но тут по работе - придётся грузить людей и ждать.
Andrey
Ребят, а сертификаты внутрь докер контейнера прокидываются с хоста или свои внутри контейнера?
inqfen
Свои
std::slavik
а в docker composer зачем указывать volume если все равно приходится при docker pull контейнера в строку вызова передавать
std::slavik
запустить нормально группой можно только через докерхаб с исходниками? несколько реплик контейнера нельзя одной командой запустить?
Konstantin
это сейчас на каком языке было?
inqfen
А, 4 утра. Я пьяный иногда и хуже пишу
bama^boy
В документации все хорошо расписано.
twwlf
В документации все хорошо расписано.
Как-то странно ты документацию читал
twwlf
А что не так?
scale и без сворма работает
bama^boy
scale и без сворма работает
Реально, мои знания устарели. Я про deploy replicas помню, которые только со swarm работают. Видимо, недавно scale добавили.
std::slavik
А когда образ из докерхаба скачиваю готовый
std::slavik
Только скриптом несколько раз запустить?
Konstantin
Зовите переводчика
Mikhail
Кажется он имеет ввиду របៀបរត់ឯកសារច្រើននៃកុងតឺន័រដោយប្រើការរត់ docker
Mikhail
да
docker-compose up и погнали
std::slavik
так если нет yml файла
std::slavik
и тд на новой машине pull делаю
Mikhail
Ну напиши docker-compose.yml в чем сложность?
Mikhail
А, я понял
Mikhail
Запускай контейнеры с разным именем?
Mikhail
docker run ... --name cont1