Какова наилучшая практика для обнаружения сервисов на уровне приложений в Kubernetes? - PullRequest
0 голосов
/ 26 мая 2019

У меня 3 приложения.

Шлюз, СервисА и СервисБ.

Каждое приложение находится в своем собственном пространстве имен. Всякий раз, когда происходит передача на сервер CI / CD на одном из всех 3. Все развертываются на основе имени ветви.

Пример:

  1. Создать новую ветку (feature-1) в репозитории ServiceA.
  2. Внести и зафиксировать некоторые изменения
  3. Сервер сборки создает и развертывает ветку feature-1 с уникальным именем службы в кластере Kubernetes.
  4. Сервер компоновки ищет в ServiceB и шлюзе ветви feature-1, если не найдено, по умолчанию develop. Для шлюза он создает feature-1 из develop и развертывает его.
  5. Затем шлюзу необходимо знать URL-адрес DNS ServiceA от feature-1, чтобы иметь возможность вызвать его.

Итак, мой вопрос: как выполнить обнаружение служб в приложении lvl с использованием kubernetes?

1 Ответ

0 голосов
/ 19 июня 2019

Я думаю, что есть два способа добиться этого.

1) Запросить все службы у мастера Kubernetes, с API-эквивалентом kubectl get services --all-namespaces.Затем вам необходимо настроить логику для выбора правильного сервиса.Для этого вы можете использовать, например, Selector, targetPort или указать ClusterIP.Более подробную информацию можно найти в документации .

2) Поместить приложение, построенное из каждой ветви, в новое пространство имен и позволить им направлять в пространстве имен их обычные имена., не требуя каких-либо изменений приложения.Больше информации в документации .

...