Как отправить вызовы Ajax в приложение, расположенное в модуле в кластере Kubernetes? - PullRequest
0 голосов
/ 13 февраля 2019

Мое приложение отлично работает на локальном хосте моей машины.Я делаю несколько вызовов ajax на свои бэкэнд-сервисы.Запросы, которые я делаю, похожи на следующий пример:

http.open("POST","http://127.0.0.1:3000/due",true);

Когда я помещаю свой код в docker-контейнеры и запускаю их в моем кластере kubernetes, я понимаю, что мои вызовы ajax не будут работать.Как правильно совершать звонки?

Есть ли IP-адрес, на который мне нужно отправить звонок?Звонки выполняются из javascript ( front end, который также работает в моем кластере ) в мой backend.Единственное решение, которое я нашел, - это выставить свои внутренние сервисы, которые я не хочу делать.

Я не уверен, как использовать ClusterIP.Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Создать бэкэнд-сервис, который должен быть нацелен на бэкэнд-модуль.Вы должны поразить модуль бэкэнда, используя днс-сервис с резервным копированием, который будет выглядеть как имя-бэк-сервис.Пространство имен.Svc.Кластер.Локальный

Если ваше приложение работает за пределами кластера kubernetes, обновите тип службы как Node Port.Тогда Ajax-вызов должен попасть в hostname: nodeport

0 голосов
/ 13 февраля 2019

Вы можете просто создать kubernetes Service с типом ClusterIP , предназначенным для внутреннего модуля.Но при этом бэкэнд будет открыт только внутри кластера.Вы можете сделать это следующим образом.

kind: Service
apiVersion: v1
metadata:
  name: my-backend
spec:
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 3000
    targetPort: 3000
  type: ClusterIP

После этого вы можете использовать http://my-backend:3000/due для вызова Ajax.Убедитесь, что ваш сервис находится в том же пространстве имен, что и ваш модуль, и используйте selector для указания на внутренние модули.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...