Google PubSub. Связь из AppEngine с модулем Kubernetes и от одного модуля Kubernetes к другому модулю Kubernetes

Как я могу отправлять и получать сообщения в этих двух случаях?

Мы переносим наше приложение с appengine на kubernetes. У нас есть два микросервиса, распределенных таким образом:

Среда разработки

  • Служба 1: работает в модуле Kubernetes (кластер с именем 1). Он работал на AppEngine
  • Служба 2: запускается в модуле Kubernetes (кластер с именем 1). Он работал на AppEngine

Проблема в том, что служба 1 продолжает отправлять сообщения pubsub службе 2 в AppEngine. Он должен отправлять сообщения pubsub в службу 2, работающую в Kubernetes.

Производственная среда

  • Сервис 1: работает в AppEngine, но скоро он будет работать в модуле Kubernetes (кластер с именем 1).
  • Сервис 2: работает в AppEngine, но скоро он будет работать в модуле Kubernetes (кластер с именем 1).

В настоящее время в производственной среде сервисы 1 и 2 общаются через pubsub. Как (и в каком порядке) лучше всего начать миграцию обоих сервисов из производственной среды в модули Kubernetes?

Я думал о том, чтобы одновременно перенести сервисы 1 и 2 в Kubernetes и начать использовать http rest для отправки и получения сообщений между ними (это означало бы прекратить использование Google PubSub), но я не уверен. Еще одна проблема, которую я вижу, заключается в том, что конечные точки Push требуют https, а мой внешний IP-адрес из моей службы kubernetes - http.


person pablofiumara    schedule 28.04.2020    source источник


Ответы (2)


Сообщения PubSub отправляются в тему. Каждый слушатель этой темы (например, служба 2 GAE и служба 2 k8s) получит отправленные сообщения.

Если вы хотите различать сообщения на основе происхождения (GAE и k8s), самый простой способ создать другую тему. И настраивать только эту новую тему в сервисах k8s.

Однако я не понимаю, в чем может быть проблема с разделением темы pubsub, если службы делают то же самое.

person Juancki    schedule 29.04.2020
comment
Спасибо за Ваш ответ. Проблема в том, что я не вижу, чтобы служба 2 k8s получала сообщения pubsub. - person pablofiumara; 29.04.2020
comment
Ах, хорошо. Этот учебник настраивает эхо сервис в кубернетах по теме echo. В коде main.py здесь вы можете изменить тему имя на ваше, чтобы проверить соединение. - person Juancki; 29.04.2020
comment
Спасибо, но я вижу еще одну проблему: конечные точки Push требуют https, а мой внешний IP-адрес из моей службы kubernetes - http - person pablofiumara; 29.04.2020

Решение было:

1) Чтобы изменить подписку pubsub на тип pull

2) Создайте учетные данные для учетной записи службы

3) Адаптированный служебный код (теперь работающий в Kubernetes), так что он действительно извлекает сообщения pubsub.

person pablofiumara    schedule 30.04.2020