Dima
да, смотрю коннекшены уже...
Dima
Коллеги, всем добрый вечер, никто не подскажет, что может быть причиной ошибки?
Dima
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Alex
что угодно
Alex
usermod docker?
Dima
Кейс: непрерывная интеграция gitlab ci, раннер в отдельном докер контейнере, юзаю docker:latest и dind для джобы сборки образа
Dima
раннер запущен в привелигированном режиме
Alex
а, dind, это все объясняет.
Dima
--docker-privileged
Dima
интернет ничего внятного не говорит
Dima
единственная зацепка, у нас на сервере старый центос 6, официально он не саппортится, это может быть причиной? Хотя докер и докер-компоус исправно работают.
Dima
ну + что сам раннер докеризирован
Igor
Тебе не нужен докер в докере, просто пробрось сокет докера в контейнер с ci
Vlad
Anton
По etcd, consul тут лучше спрашивать или есть более специализированный чат?
Aleksandr
Anton
Спрошу тут. Что посоветуете? Есть несколько команд разработки. В каждой команде хотелось бы локальный etcd, где храниться только инфа для команды. Есть глобальный etcd. Локальные etcd публикуют в глобальном etcd только публичные сервисы.
Anton
В consul есть datacenter. И есть глобальные consul сервера. Может consul для этого подойдет? Вся Ли информация синхронизируется между data center?
Igor
а про какую "инфу" для команды речь? просто хочешь чтобы каждая команда к своему набору сервисов имела доступ? или там еще какие то конфиги шарятся?
Anton
Логины, параметры конфигурации. Это не нужно остальным командам
Ruslan
Коллеги, скажите пожалуйста из-за чего примерно может быть так, что падает контейнер ( memcached:alpine и exit code кажется 137 ) и порт не освобождается ?
Ruslan
docker logs пишет, что-то типа process terminated
Ruslan
то есть ничего полезного для расследования
Igor
я не знаю особенностей, но у меня сейчас просто через докер идет разграничение, т.е. есть стэйдж сервер, куда деплоятся проекты, каждый проект деплоится в свою сеть докера просто, тем самым изолированы от других проектов, а доступ к ним заведен через реверс прокси:
web -> nginx:80 -> nginx(в докер сети) -> фронтэнд проекта
Anton
Igor
А etcd/consul используется?
consul используется, у каждого проекта свой консул, который следит за здоровьем бэкэнд контейнеров, он нужен чтобы автоматом переконфигурировать nginx, т.е. увеличили количество бэкэндов, nginx автоматом начинает балансировать на новые контейнеры, кто -то умер, убирается из балансировки
Igor
Igor
когда памяти не хватает, нет возможности подробный лог написать, т.к. это требует алокации еще большей памяти которой нет
Igor
попробуй глянуть внутри контейнера в логах, если мемкэш пишет лог в файл
Anton
Anton
А как глобальный consul узнает о новом локальном сервисе?
Anton
Anton Patsev:
А как глобальный consul узнает о новом локальном сервисе?
Anton
Так агент отправит мастеру всю информацию
Anton
А надо только публичный сервис
Igor
так это не страшно, сервис не будет доступен из вне
Igor
но при этом другие сервисы могут знать жив этот сервис или нет, для мониторинга удобно
Igor
локальные (т.е. сервисы которые в его сети ) будут иметь доступ к этому сервису
Igor
они у меня разграничены по именам, там же consul как dns работать может:
service1.project1.node1.com
service2.project1.node1.com
Типо того
Anton
Вопрос не в этом. Как глобальный consul узнает о новом сервисе, который появился на minx?
Anton
Nginx
Igor
каждый сервис регистрируется через апи в агенте, а агент уже передает данные своему мастеру, другие сервисы могут через своих агентов или на прямую через мастер получать любые данные
Anton
Это локально
Anton
А глобально?
Igor
это глобально
Igor
разница для внешних сервисов лишь в том что, они получат адрес сервиса, к которому у них нет доступа, но знать что он появился они будут
Igor
есть глобальный nginx, он в ручную сконфигурирован, есть локальный для проекта nginx, он автоматом конфигурируется. Глобальный к локальному обращается через dns докера, т.к. локальный nginx находится в двух сетях, в сети проекта он известен просто как nginx, а в сети глобального nginx он известен как projectname-frontend
Igor
у меня просто абсолютно всё внутри докера, нет ни одного сервиса за его пределами, поэтому глобальный nginx он там же внутри докера, просто в другой сети, и проброщен на 80/443 порт хост машины, а проекты вообще ни куда не проброщены, они все спрятаны в своих подсетях
Anton
Нарисовал схему
Anton
https://www.draw.io/?chrome=0&lightbox=1&edit=https%3A%2F%2Fwww.draw.io%2F%23G0B6X3SOAgohFhazlYem11SldjSUk&nav=1#G0B6X3SOAgohFhazlYem11SldjSUk
Igor
разреши доступ
Anton
еще раз попробуй
Igor
ага вижу
Igor
ну у меня примерно тоже самое
Igor
https://docs.docker.com/engine/userguide/networking/
только через докер нетворки изолированы
Igor
внутри сети работает докеровский встороенный сервис дескаверинг, т.е. ни какой etcd не нужен, сервисы друг с другом по заранее заданным хост именам обращются
Igor
https://docs.docker.com/engine/userguide/networking/configure-dns/
Igor
если нужно чтобы контейнер стал глобальным, просто в default сеть его включаешь, и алиас задаешь ему
Anton
А если локальные сервисы запускаются в докерах на разных машинах докеровский встороенный сервис дескаверинг будет работать?
Igor
только если докер в режиме кластера
Igor
https://docs.docker.com/engine/userguide/networking/get-started-overlay/
Igor
в этом режиме еще и балансер встроенный будет
Anton
т.е. нужен swarm? а kubernetes не проверяли?
Igor
так в кубернейтс свой сервис дескаверинг, через как раз etcd / consul если я не ошибаюсь
Igor
если то о чем спрашивали, нужно сделать внутри кубернейтса, то там наверняка свои приблуды есть для этого
Igor
http://kubernetes.io/docs/user-guide/networkpolicies/ судя по всему через это реализуется
Anton
спасибо за помошь
Igor
да не за что, надеюсь не запутал еще больше :)
Denis
спасибо за помошь
Привет. Посмотри еще в сторону mesos кластера. По мне он гибче и проще
Anton
Кроме сервиса дескаверинга я хотел хранить в локальном etcd и другие конфиги.
Denis
Если ты мне отвечаешь, то mesos никак не ограничивает тебя в используемых инструментах
Denis
можешь что угодно юзать для SD и конфиг тимплитинга
Anton
Денис, я Игорю отвечал.
Igor
Так ты можешь просто локальный etcd к примеру, не объединять в кластре с глобальным и ходить в локальный etcd за локальными данными, а за глобальными в глобальный, ни кто же ведь тебя не ограничивает в этом плане
Anton
хотелось бы автоматически. В consul есть datacenter. И есть глобальные consul сервера. Может consul для этого подойдет? Вся Ли информация синхронизируется между data center? Как происходит синхронизация кто-нибудь может подсказать?
Denis
Наверняка посредством etcd