LINUX.ORG.RU
ФорумAdmin

Балансировка docker-контейнера помощью dockercloud/haproxy

 , ,


0

1

Добрые вечер!

Знатоки докера, помогите плиз!

Пытаюсь в режиме роя (Swarm), на одном хосте забалансить контейнер onlyoffice, с помошью контейнера dockercloud/haproxy.


Разворачиваю все командой:

docker stack deploy --compose-file /usr/local/bin/back_docker_compose.yml onlyoffice


Файл back_docker_compose.yml
#Контейнер с OnlyOffice
version: '3'
services:
  onlyoffice:
        
    image: onlyoffice/documentserver
    restart: on-failure:5
    stdin_open: true
    volumes:
      - /mnt/cloud/onlyoffice/log:/var/log/onlyoffice
      - /mnt/cloud/onlyoffice:/var/www/onlyoffice/Data
      - /mnt/cloud/onlyoffice/cache:/var/lib/onlyoffice
    ports:
      - "80"
    networks:
      - overlay
        # deploy:
        #replicas: 2

  balancer:
    image: dockercloud/haproxy
    networks:
      - overlay
    depends_on:
      - onlyoffice
    environment:
      STATS_AUTH: 'stats:stats'
    deploy:
      placement:
        constraints:
          - node.role == manager
            #'constraint:balancer==yes':
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - '80:80'
      - '1936:1936'
networks:
  overlay:



Разворачивается все нормально, но на порту 80 в итоге отбалансенный onlyoffice не открывается, выдается Unable to connect.

Пробовал в compose-файле указывать проброс 80 порта onlyoffice наружу - все работает.

Через haproxy из контейнера - никак(

Подскажите, в чем может быть косяк?

Заранее спасибо!

P.S. OnlyOffice самостоятельно пробрасывает свой 80 порт наружу, на 30000 порт. Странно...


если количество овер 50, то палюбасу на ext4 надобно это делать. Ну, и dnsmasq, то проверена? (?)! А-то «жужжать», в «рое», а самое элементарное упущено!?

anonymous ()
Ответ на: комментарий от anonymous

Спасибо за статью, но не помогло:(

Сделал все по ней, но результат тот же.

OnlyOffice не работает с SERVICE_PORTS, и, если наружу не выводить 80 порт, то он самостоятельно его вешает на 30000 порт на хост-машине.

Может быть это связано с какой-нибудь защитой, исходя из того, что бесплатная версия у него поддерживает максимум 20 открытых документов?

Fess88 ()
Ответ на: комментарий от xkorolx

Спасибо, попробовал и по их yml-файлу, примерно тот же результат.

Потестил балансировку на контейнере dockercloud/hello-world, и то же самое - 503 Service Unavailable
No server is available to handle this request.

Подозреваю, что проблема в этом:

volumes:
 - /var/run/docker.sock:/var/run/docker.sock


но как отладить, не понимаю(

Fess88 ()
Ответ на: комментарий от Fess88

Еще заметил, что после всех манипуляций с Docker Swarm заметил, что появилась куча сетевых интерфейсов вида:

veth65b6317@if568 и т.д, всего 10, включая docker0, их как-то можно удалить, без переустановки Docker?

Fess88 ()
17 сентября 2018 г.
Ответ на: комментарий от Fess88

Вроде достаточно перезагрузить тачку, ненужные интерфейсы сами отвалятся

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.