Существует ли рекомендуемая практика включения имен служб kubernetes в микросервис? - PullRequest
0 голосов
/ 17 мая 2018

Я знаю, что это странный вопрос, и я держу пари, что это может зависеть от сценария или предпочтений.

Если у меня есть набор микросервисов, давайте просто в общих чертах назовем их A, B и C. Каждый из них работает в своем собственном теле.

Если A нужно получить доступ к B и C для обработки запроса, то я хотел бы полагаться на разрешение DNS Kubernetes и создать службу, которая будет направлять в B, и другую службу, которая будет направлять в C. Давайте в общих чертах назовем их ServiceB и ServiceC.

Сейчас я просто храню имена сервисов в константах, определенных в клиентском коде, который выполняет запросы.

Исходя из вашего собственного опыта, есть ли веские основания для того, чтобы они были сохранены в файле конфигурации (или configmap)? Я не могу себе представить, что они сильно меняются, если вообще изменяются на протяжении всего жизненного цикла приложения.

Что вы делаете в своей практике и почему?

1 Ответ

0 голосов
/ 17 мая 2018

Исходя из вашего собственного опыта, есть ли веские основания для их сохранения в файле конфигурации (или configmap)?

  • Как общее руководство по передовой практике, мы стараемся избегать «магических вещей», жестко закодированных в коде. Если хотя бы для того, чтобы потом иметь возможность перенаправить его позже, скажем, из службы dev в службу qa для поиска или тестирования ошибок.

Что вы делаете в своей практике и почему?

  • Если это настраивается удаленно - мы помещаем его в какую-либо форму конфигурации, будь то файл конфигурации, переменная ConfigMap или переменная окружения. Нам больше нравится показывать его, а не изменять его, а не жестко кодировать, а потом сожалеть об этом ... В зависимости от того, как часто мы ожидаем изменения, мы помещаем его (в порядке возрастания) в: некоторый файл конфигурации, связанный в образе докера, ConfigMap с содержимым файла, ConfigMap с переменной среды, переменная среды непосредственно в определении контейнера, поле базы данных, которое приложение читает.
...