Контейнер Docker, проходящий через Rancher, не имеет IP

Я использую traefik на своем сервере для балансировки нагрузки моих приложений с помощью бэкэнда докера. Я запустил rancher (1.6.14) через докер, чтобы легко запускать другие приложения.

Мне удалось получить доступ к ранчо через traefik. Но когда я запускаю приложение через rancher, у контейнеров нет IP-адреса, поэтому traefik не может с ними связаться. В бэкенде traefik я вижу http://:8000 для своего приложения со стеком:

докер-compose.yml:

version: '2'

services:
  app:
    image: mykiwi/ttrss
    labels:
      traefik.port: 8000
      traefik.protocol: http
      traefik.frontend.entryPoints: https
      traefik.frontend.rule: Host:foo.bar

  database:
    image: postgres:10-alpine
    environment:
      - POSTGRES_USER=ttrss
      - POSTGRES_PASSWORD=ttrss
    volumes:
      - database:/var/lib/postgresql/data

volumes:
  database: ~

Есть идеи, почему/как это исправить?
Я также пытался добавить это: (вдохновленный конфигурацией wekan)

ранчер-compose.yml:

version: '2'

services:
  app:
    scale: 1
    retain_ip: true
    start_on_create: true

  database:
    scale: 1
    start_on_create: true

Тот же результат.


person mykiwi    schedule 13.02.2018    source источник


Ответы (1)


Когда контейнеры запускаются через Rancher, они становятся частью «управляемой» сети Rancher. Контейнеры получают IP-адрес, но он из другой сети (по умолчанию: 10.42.0.0/16), а не из сети докеров (172.17.0.0/16).

У Rancher также есть служба балансировки нагрузки, которая может позаботиться о потребностях приложения. Пожалуйста, проверьте: https://rancher.com/docs/rancher/v1.6/en/cattle/adding-load-balancers/#adding-a-load-balancer-in-the-ui Чтобы получить больше информации.

person leodotcloud    schedule 14.04.2018