Изменить - возможно ли вообще этого достичь, или я должен искать что-то еще?
Как я могу интегрировать посланника с консулом для автоматического обнаружения и маршрутизации сервисов? Контейнеры работают в докере, и каждый контейнер регистрируется у консула во время выполнения.
Мой докер-сочинять файл выглядит так.
version: '3'
services:
consul:
image: consul:1.6
container_name: consul
ports:
- 8300:8300
- 8400:8400
- 8500:8500
envoy:
container_name: envoy
build:
context: ./envoy
dockerfile: Dockerfile
ports:
- 10000:10000
user:
container_name: user
build:
context: ./user
dockerfile: Dockerfile
Допустим, пользователь зарегистрирован на консула с идентификатором foo
работает в порту 80
и запрос к доверенному лицу посланника приходит как http://localhost:10000/user
посланник / envoy.yaml
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address: { address: 0.0.0.0, port_value: 9901 }
Нам нужно было выбрать альтернативу Nginx (с шаблоном consul), и в нашем списке также был посланник, но мы решили использовать вместо него Traefik.io.
Мы по-прежнему используем consul-template для рендеринга конфигурации, но причины этого кроются в нашей специальной настройке сервиса.
Мы не хотели вводить новый слой абстракции только для Envoy -> traefik, это