Как внедрить приложение 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.