Как внедрить приложение SpringBoot в качестве прокси-сервера SideCar в другое приложение SpringBoot в Kuma или любой другой Service Mesh

Я знаю, как использовать Kuma или Istio в качестве Service Mesh и внедрить один прокси-сервер SideCar в одно существующее приложение SpringBoot или любое другое приложение, но можем ли мы внедрить одно приложение SpringBoot в качестве прокси-сервера SideCar в другое приложение SpringBoot.

Контекст: допустим, приложение SideCar Proxy SpringBoot может иметь базовые функции (например, аутентификацию, политику безопасности или любой другой тип политики и т. Д.), Которые могут потребоваться в основной службе SpringBoot. И такое же прокси-приложение SideCar можно внедрить в любое другое приложение.

Вопрос может показаться немного расплывчатым, но я могу предоставить по нему более подробную информацию, если что-то неясно или непонятно.

Спасибо

2 ответа

Я не уверен, что правильно понял вопрос. Похоже, вам нужно иметь два приложения SpringBoot , одно будет основным приложением, а другое - вспомогательным. Это не звучит необычно.

Вот пример файла deployment.yaml, который у вас может быть:

      apiVersion: apps/v1
kind: Deployment
metadata:
 name: sidecar-deployment
 labels:
   role: app
spec:
 replicas: 1
 selector:
   matchLabels:
     role: app
 template:
   metadata:
     labels:
       role: app
   spec:
     volumes:
     - name: shared-data
       emptyDir: {}
     containers:
     - name: mainapp
       image: "dokerhubuser/mainapp"
       volumeMounts:
       - name: shared-data
         mountPath: /usr/share/mainapp-folder
       ports:
       - containerPort: 8080
     - name: sidecar
       image: "dokerhubuser/sidecar"
       volumeMounts:
       - name: shared-data
         mountPath: /usr/share/sidecar-folder
       ports:
       - containerPort: 8888

Это очень просто. Главное, что коляска - это второй контейнер в том же развертывании.

Они будут использовать одну и ту же файловую систему. Приложение Sidecar может быть адресовано через localhost: (например, HTTP: // localhost:8888 в нашем случае)

Насколько мне известно, это невозможно в Kuma или любой другой сервисной сетке. Я считаю, что вы просите о возможности настроить / заменить прокси, используемый сеткой службы. В случае Kuma и Istio, которые используют Envoy в качестве дополнительного прокси-сервера, вам потребуется повторно реализовать большую часть Envoy в вашем приложении Springboot.

Я думаю, вам лучше попытаться перенести логику из вашей "коляски" SpringBoot либо в политики Kuma, либо в какой-нибудь шлюз. Например, Apache APISIXподдерживает подключаемые модули Java.

Другие вопросы по тегам