Oleg
или кто как осуществляет load balancing?
Oleg
у меня связка browser <-inet-> глобальный балансер (nginx,letsencript) <-overlay front-> балансер проекта (haproxy) <-overlay back-> сервисы проекта (web/db)
Oleg
сейчас перехожу на новый swarm и не могу понять почему dockercloud/haproxy не видит сервисы проекта
Oleg
поэтому ищу опробованное решение для баланировки внутри проекта
Aleksey
А где теперь гитхаб где релизноутсы читать?
Igor
moby/moby
Aleksey
Но там в ченджлоге лажа
Aleksey
От 17.04
Aleksey
А вдруг в релизе есть описание
Роман
Oleg
не, это про масштабирование. а я про балансировку
Oleg
кто использует jenkins и docker-compose?
Slach
а в чем сложности?
Oleg
даже не так наверное. какая практика использования docker swarm и jenkins для CI/CD?
Evgeny
Практика простая - использовать
Oleg
условно в репо есть docker-compose.yml. нужно чтобы jenkins используя docker swarm билдил, тестировал и при успешном тесте заливал новые контейнера в registry
Oleg
хотелось бы избежать dind
Evgeny
можно кроме докера в докере использовать управление докером на хосте черех проброс сокета
Oleg
вы как используете?
Dmt
Из дженкинса я думаю можно зайти на ту же тачку по ssh
Evgeny
вы как используете?
У меня отдельно билд машина которая отправляет в сварм-кластер деплой. На билде дженскинс и докер с проброшенным внутрь сокетом
Aion
Роман
connect() failed (111: Connection refused) while connecting to upstream - при обращение к домену test.ru (502, 503)
это из лога контейнера с нгинх
в контейнере для test.ru чисто статика(верстка, пару картинок)
upstream test.ru {
## Can be connect with "web" network
# test
server 172.18.0.3:80;
}
server {
server_name test.ru;
listen 80 ;
access_log /var/log/nginx/access.log vhost;
location / {
proxy_pass http://test.ru;
}
}d-c.yml
version: '2'
services:
app:
build:
context: ./
environment:
VIRTUAL_HOST: test.ru
volumes:
- ./:/www/test
networks:
- web
ports:
- 80docker inspect
"Ports": {
"80/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "32789"
}
]
},
E
мб вместо
server 172.18.0.3:80;
должен быть
server localhost:32789;
E
?
E
сетка-то докеровская, а nginx на хосте, не?
Роман
32789 не статический порт
Роман
они в одной сети
E
сделай статическим
Роман
пробовал статический
Роман
ага
E
мб не ключевой момент тут, но nginx просто проксит запрос, он не отдает никакую статику
E
location / {
proxy_pass http://test.ru;
}
E
а, понял, ты про контейнер написал
E
я просто смысла в nginx не вижу тут при таком конфиге
Роман
https://github.com/atnartur/nginx-proxy
Роман
он нужен, потому что есть несколько доменов на одном ip
E
они в одной сети
запусти из контейнера, в котором работает nginx (через exec) и покажи ifconfig, и попробуй ping 172.18.0.3
кстати, зачем там ip? если ты юзаешь сворм, там дискавери работает из коробки
E
мб ты пытаешься достучаться до ip, которого уже нет
Роман
ping из контейнера с нгих до 172.18.0.3 норм
Роман
ifconfig: inet addr:172.18.0.1, inet addr:172.17.0.1 и прочие
E
я просто хотел убедиться, что они в одной подсети находятся
E
а сделай еще в контейнере nginx что-нибудь такое:
wget http://172.18.0.3
E
так мы поймем кто фейлит - контейнер nginx или тот другой, на который проксируется все
Роман
converted 'http://172.18.0.3' (ANSI_X3.4-1968) -> 'http://172.18.0.3' (UTF-8)
--2017-05-08 17:50:34-- http://172.18.0.3/
Connecting to 172.18.0.3:80... failed: Connection refused.
E
ну вот
E
у тебя в другом контейнере не работает сервер
E
что там запущено?
Роман
ничего, для приложения там не запущено, только вывод htop чтобы контейнер не завершал работу
Роман
но этот контейнер основан на ubuntu:16
E
так, стоп
E
ты проксируешь nginx в контейнер, на 80 порт, но там никто не слушает этот порт?
Роман
выходит да
E
ну тогда поведение абсолютно верное - ничего не должно работать
E
потому что работать нечему
E
¯\(°_o)/¯
Роман
в этом контейнере нет ничего, что было бы мне нужно, хотя он построен на ubuntu 16 image
Роман
а в ubuntu 16 есть апач, нгих, питон, пхп
Роман
так и должно быть?
E
запустите что-нибудь в этом контейнере на 80 порту, что будет отдавать ваш вебсайт
E
тогда и nginx сможет проксировать туда запрос
E
иначе некуда проксировать
Роман
ага, это понял
E
поэтому и connection refused
Роман
команду не могу полную вспомнить
E
какую?
Роман
docker network inspect $(docker containers ls)
Роман
то что в скобках
Роман
чтобы посмотреть все сети и контейнеры, что к ним относятся
E
docker network inspect $(docker network ls --format="{{.ID}}")
E
?
Vyacheslav
кстати а есть чего нибудь легковесное для раздачи статики из контейнера, как в ситуации выше. сейчас использую nginx, но жаль целых 50Мб под это тратить. Наверняка должно быть что нибудь содержащее в себе simple и httpd
Роман
E
E
@vterdunov 6 метров-то не жалко? 😊
Vyacheslav
nginx 1.11-alpine bedece1f06cc 4 weeks ago 54.3MB
Vyacheslav
я просто по docker images смотрю
E
вот я ссылку отправил