Многокластерное обнаружение сервисов Kubernetes с использованием Consul и Spring Cloud Consul - PullRequest
0 голосов
/ 17 апреля 2020

Хорошо, у меня есть два голых металла Kubernetes кластера, без облачных провайдеров. У меня есть микросервисы, написанные на весенней загрузке . Теперь я хочу создать механизм обнаружения услуг производственного уровня для межсервисной связи.

Моя основная цель c - поддерживать многокластерную связь между службами и услугами . Таким образом, микросервис-1 на кластере-1 должен иметь возможность вызывать микросервис-2 на кластере-2. Достаточно справедливо?

В поисках этого я провел бесчисленные часы в исследованиях. Я исследовал Native Kubernetes Service Discovery, Istio, Eureka et c, но ни один из них не мог действительно служить моей цели.

Я наконец-то думаю остановиться на Консуле Хашикорпа и Проект Spring Cloud Consul .

С помощью Синхронизации службы Consul я смог зарегистрировать службы Kubernetes (типа NodePort) для Consul в одном кластере. Так что на данный момент мой Kubernetes cluster-1 и консул-сервер находятся на одной и той же Linux машине.

Я включил Spring Cloud Consul в моих сервисах весенней загрузки, но отключил их регистрацию в Консуле, потому что, если я включу регистрацию, модули Kubernetes будут зарегистрированы в Консуле. Я хочу, чтобы службы Kubernetes были зарегистрированы, чтобы, когда клиент спрашивал Консула о целевой службе, Консул мог вернуть host и nodePort целевой службы. Host и nodePort позволят мне вызывать службы в кластерах.

У меня есть два вопроса для сообщества:

  1. Я хочу развернуть микросервисы на втором Создайте кластер Kubernetes и зарегистрируйте их на консул-сервере первой машины, чтобы хранить весь реестр сервисов в одном месте. Я не хочу устанавливать другой сервер Consul во втором кластере, и более того, Consul-1 и Consul-2 будут взаимно не синхронизированы c. Итак, вторая установка - это не go. Как я могу решить эту проблему?
  2. Я хочу загрузить баланс на стороне клиента, используя Лента . Я хочу загрузить баланс между двумя сервисами Kubernetes, возвращенными консулом. Как я могу это сделать?

Кроме того, если у вас, ребята, есть предложения по достижению того, чего я хочу, пожалуйста, дайте мне знать.

Извинения за длинный текстовый вопрос.

...