Aleksey
Менеджеров может быть больше одного
Денис
Денис
только как сказал алексей ) у тебя для нормальной работы сварма нужно 3 менеджера
Denis
исходя из того что чем больше рафт тем он медленее сходится, и в свою очередь ноды могут чаще из строя выходить, не будет ли у нас проблем с доступностью сервиса потому что периодически у нас там "выборы" идут
Денис
и они между собой решают кто главный
Денис
выборы там идут без митингов агитации и прочего ) решается все за милисекунды ) этож не россия
Денис
сервис в это время не падает
Денис
просто меняется главный менеджер
Denis
мммм
Денис
просто в это время нельзя управлять кластером / скейлить добавлять ноды
Denis
Я как бы понимаю что выборы ходят между 3мя нодами которые 2 ричибл и одна настоящий менеджер
Денис
но ты врят ли сможешь это заметить при штатной ситуации )
Денис
ну да ) а сервису запущенному пох ) он уже работает и работает
Денис
порты открыты, запросы принимаются
Denis
тоесть мы должны сами контролить доступность нод менеджеров и докидывать их
Denis
или промоутить до менеджера
Денис
нет
Денис
менеджеры сами решают кто главный
Денис
но твой сервис работать не перестает
Денис
доступность видят оставщиеся менеджеры
Денис
если падает нода, остальные менджеры быстро решают кто главный и понимают сервисы что были на упавшей ноде
Денис
допустим у меня 30 парсеров по 10 на ноду, одна выпала, стало 20 , проголосвали, подняли еще по 5 инстансов до 30
Денис
это автоматически
Денис
проблема в том , что когда нода поднимается и приходит в себя ) на нее нагрузка не размажется
Денис
и она не сможет взять назад менеджера
Денис
тоесть будет пустая пока ты не сделаешь service scale и вручную не отдаешь ей права главного
Denis
Денис
даже один решит что он главный когда никого не станет )
Denis
а когда и его не станет ?
Денис
то иди мыль зад ) и к директору
Denis
тоесть на самом деле то, что я и сказал, мы должны сами контролировать доступность менеджеров и докидывать их при необходимости.
Денис
что у тебя случиться что упадут сразу 3 менеджера ? ну сделать 4 в разных ДЦ
Денис
менеджер может просто управлятьи не принимать контейнеры
Denis
да дело не в "упадут" а в "хочу сворм на спот инстансах"
Денис
кроилово ) ведет к поподалову
Денис
никто не мешает тебе каждую ноду делать менеджером
Denis
долго рафт сходится будет, не ?
Денис
менеджер так же исполняет контейнеры
Денис
я бы сделал так , взял инстанс микро
Денис
поставил туда главного
Denis
микро плохо, там сеть уг.
Aleksey
Пчол, копай сам. Видишь же пациент в другом уровне абстракции.
Denis
у нас тут зк покрутились на микро.... наелись...
Denis
Денис
Aleksey
Ну пчол про конкретные технологии а ты про 'сам'
Aleksey
Похоже на разговор менеджера и технаря
Денис
:) ну я пытался как мог
Denis
я просто думал сворм как раз такой типа сам двигается, сам скейлится, сам реаллокейтится
Denis
а сейчас сижу доку читаю и как то там не очень он самостоятельный, и в "диком" облаке аля спот инстансы где половина нод могут взять и сдохнуть разом, без посторонней помощи походу сворм не выживет
Denis
Aleksey
Хочу. Но пока не могу
Aleksey
И к меня точно нет спотинстансов
Denis
ну ясики.
Денис
Денис
микро у тебя точно не умрет
Aleksey
Хзхзхз
Aleksey
Пчол, сколько спотов?
Денис
в сравнении со спотами он маклауд
Aleksey
Ибо больше нод больше памяти
Aleksey
Ну и делов тоже больше
Aleksey
Планирование скейла, расчеты всякие
Denis
порядка 30 получается
Denis
30-35
Joe
Коллеги прошу помощи, я начинающий можете тапочком похлопать 😢 задали лабу сделать не могу найти ошибку при сборке?
Joe
Joe
FROM node:7-onbuild
RUN mkdir -p /docker
WORKDIR /docker
RUN git clone https://github.com/acc-cloudaccess/app.git
#COPY git clone https://github.com/acc-cloudaccess/app.git
RUN npm install
EXPOSE 8080
CMD [ "npm", "start" ]
Joe
при сборке контейнера получаю
Step 1/1 : COPY package.json /usr/src/app/
lstat package.json: no such file or directory
Игорь
RUN npm install можно удалить
Joe
А как это описать?
Joe
А как это сделать в Dockerfile?
Игорь
А как это сделать в Dockerfile?
Как я понял, образ node:7-onbuild полностью автоматический.
Достаточно в Dockerfile две строки:
FROM node:7-onbuild
EXPOSE 8080
и собираем контейнер docker build .
Я не тестировал, не могу уверенно сказать что будет работать
Игорь
Я до Docker compose еще не дошел.
Игорь
А насчет сервера, вот эту сборку я тестировал. https://github.com/jwilder/nginx-proxy
На автомате привязывает домены к контейнерам.
Запускам контейнер с сервером docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
затем второй контейнер запускаем с параметром -e VIRTUAL_HOST=foo.bar.com
Где foo.bar.com - доменное имя.
Больше делать ничего не нужно.
Так же в репозитории есть пример с Docker compose.
Joe
Кстати убрал все и оставил как ты говорил две строчи в Dockerfile ошибка повтарилась
Игорь
что за ошибка?
Игорь
> Step 1/1 : COPY package.json /usr/src/app/
Эта чтоль?