Непредсказуемое поведение регистратора и консула - PullRequest
0 голосов
/ 01 февраля 2019

У меня очень простая конфигурация docker-compose:

version: '3.5'

services:

  consul:
    image: consul:latest
    hostname: "consul"
    command: "consul agent -server -bootstrap-expect 1   -client=0.0.0.0 -ui  -data-dir=/tmp"
    environment:
      SERVICE_53_IGNORE: 'true'
      SERVICE_8301_IGNORE: 'true'
      SERVICE_8302_IGNORE: 'true'
      SERVICE_8600_IGNORE: 'true'
      SERVICE_8300_IGNORE: 'true'
      SERVICE_8400_IGNORE: 'true'
      SERVICE_8500_IGNORE: 'true'
    ports:
      - 8300:8300
      - 8400:8400
      - 8500:8500
      - 8600:8600/udp
    networks:
      - backend

  registrator:
    command: -internal consul://consul:8500
    image: gliderlabs/registrator:master
    depends_on:
      - consul
    links:
      - consul
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock
    networks:
      - backend


  image_tagger:
    build: image_tagger
    image: image_tagger:latest
    ports:
      - 8000
    networks:
      - backend

  mongo:
    image: mongo
    command: [--auth]
    ports:
      - "27017:27017"
    restart: always
    networks:
      - backend
    volumes:
      - /mnt/data/mongo-data:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: qwerty

  postgres:
    image: postgres:11.1
#    ports:
#      - "5432:5432"
    networks:
      - backend
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
      - ./scripts:/docker-entrypoint-initdb.d
    restart: always
    environment:
      POSTGRES_PASSWORD: qwerty
      POSTGRES_DB: ttt
      SERVICE_5432_NAME: postgres
      SERVICE_5432_ID: postgres


networks:
  backend:
    name: backend

(и некоторые другие службы)

Также я настроил dnsmasq на хосте для доступа к контейнерам по внутреннему имени.Я провел пару дней, но все еще не смог сделать его стабильным: 1. Очень часто некоторые службы просто не регистрируются регистратором (иногда я получаю 5 из 15).2. Очень часто контейнеры регистрируются с неправильным IP-адресом.Таким образом, в информации о контейнере у меня один адрес (правильный), в консуле - другой (неправильный).И когда я хочу обратиться к какой-либо службе по адресу, подобному myservice.service.consul, я оказываюсь в неправильном контейнере.3. Иногда разрешение вообще не работает, даже если контейнеры зарегистрированы с правильным ip.

Есть ли ошибки в конфигурации?

1 Ответ

0 голосов
/ 02 февраля 2019

Итак, по крайней мере, сейчас я смог это исправить, передав параметр -resync 15 регистратору.Не уверен, что это правильное решение, но оно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...