Envoy sidecar-proxy publi c слушатель - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь настроить Service Me sh Po C, у меня есть три микросервиса, каждая из которых работает со своим sidecar-proxy (через посланника). Я выполнил следующую команду для запуска прокси:

consul connect envoy -sidecar-for <CONSUL_SERVICE_ID> -admin-bind 127.0.0.1:19000 -http-addr http://127.0.0.1:8500 -grpc-addr 127.0.0.1:8502

Проблема в том, что мой sidecar-proxy запускает прослушиватель publi c на порту 21002 (не знаю, откуда взялось это имя порта, конфигурация файлы для посланника нигде не найти) и он недоступен. Это приводит к сбою проверки работоспособности моей коляски и, следовательно, к сбою перенаправления моего сервиса. 1009 *

[2020-06-16 15:02:30.672][24383][debug][config] [external/envoy/source/server/filter_chain_manager_impl.cc:214] new fc_contexts has 1 filter chains, including 1 newly built
[2020-06-16 15:02:30.672][24383][debug][init] [external/envoy/source/common/init/target_impl.cc:15] init manager Server initializing target Listener-init-target public_listener:10.26.57.59:21000
[2020-06-16 15:02:30.672][24383][debug][init] [external/envoy/source/common/init/manager_impl.cc:45] init manager Listener-local-init-manager public_listener:10.26.57.59:21000 5712408582249607733 contains no targets
[2020-06-16 15:02:30.672][24383][debug][init] [external/envoy/source/common/init/watcher_impl.cc:14] init manager Listener-local-init-manager public_listener:10.26.57.59:21000 5712408582249607733 initialized, notifying Listener-local-init-watcher public_listener:10.26.57.59:21000
[2020-06-16 15:02:30.672][24383][debug][init] [external/envoy/source/common/init/watcher_impl.cc:14] target Listener-init-target public_listener:10.26.57.59:21000 initialized, notifying init manager Server
[2020-06-16 15:02:30.672][24383][debug][config] [external/envoy/source/server/listener_impl.cc:80] Create listen socket for listener public_listener:10.26.57.59:21000 on address 10.26.57.59:21000
[2020-06-16 15:02:30.672][24383][debug][config] [external/envoy/source/server/listener_impl.cc:70] Set listener public_listener:10.26.57.59:21000 socket factory local address to 10.26.57.59:21000
[2020-06-16 15:02:30.672][24383][debug][config] [external/envoy/source/server/listener_impl.cc:508] add active listener: name=public_listener:10.26.57.59:21000, hash=5712408582249607733, address=10.26.57.59:21000
[2020-06-16 15:02:30.672][24383][info][upstream] [external/envoy/source/server/lds_api.cc:76] lds: add/update listener 'public_listener:10.26.57.59:21000'
[2020-06-16 15:02:30.672][24383][warning][misc] [external/envoy/source/common/protobuf/utility.cc:198] Using deprecated option 'envoy.api.v2.listener.Filter.config' from file listener_components.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.
[2020-06-16 15:02:30.672][24383][debug][config] [external/envoy/source/server/listener_manager_impl.cc:386] begin add/update listener: name=javatestrs-microc-cicdev:127.0.0.1:6610 hash=14335360969741422718

Ответы [ 2 ]

0 голосов
/ 27 июня 2020

Порт прослушивателя publi c автоматически выделяется Consul для сопроводительного файла из диапазона по умолчанию (21000 - 21255). Он используется для получения mTLS-соединений от других прокси в me sh. Диапазон может быть определен в конфигурации агента Consul в разделе ports {}.

ports {
  sidecar_min_port = 30000
  sidecar_max_port = 31000
}

См. https://www.consul.io/docs/agent/options#sidecar_min_port для уточнения c документации.

Вы можете выбрать конкретный порт c с помощью параметра port в определении сопутствующей службы.

{
  "service": {
    "name": "web",
    "port": 8080,
    "connect": {
      "sidecar_service": {
        "port": 31000
      }
    }
  }
}
0 голосов
/ 26 июня 2020

Одна вещь, которая очень полезна для отладки ваших прокси Envoy, - это порт администратора. Из этого вы можете получить активных слушателей, кластеры и даже полный дамп конфигурации. Без использования consul-connect я могу только догадываться по вашему выводу, но я бы начал с порта 19000.

Exe c на любом хосте, на котором работает прокси, и попробуйте curl localhost:19000/listeners и посмотрите если он отвечает (или любой другой путь администратора ). Если он ответит, вы можете получить полный /config_dump, который будет описывать всю настройку этого сопутствующего элемента: какие порты он прослушивает, включен ли TLS, какие пути они соответствуют и т. Д. c и c.

...