[英]How to inject on SpringBoot application as SideCar Proxy in another SpringBoot application in Kuma or any other Service Mesh
我知道如何使用 Kuma 或 Istio 作為服務網格並將一個 SideCar 代理注入一個現有的 SpringBoot 應用程序或任何其他應用程序,但我們可以將一個 SpringBoot 應用程序作為 SideCar 代理注入另一個 SpringBoot 應用程序。
上下文是,可以說 SideCar 代理 SpringBoot 應用程序可能具有主 SpringBoot 服務中可能需要的基本內容(即身份驗證、安全策略或任何其他類型的策略等)。 並且同一個 SideCar 代理應用程序可以注入到任何其他應用程序中。
問題可能聽起來有點模糊,但如果有任何不清楚或令人困惑的地方,我可以提供更多詳細信息。
謝謝
據我所知,這在 Kuma 或任何其他服務網格中是不可能的。 我相信您要求的是能夠自定義/替換服務網格使用的代理。 對於使用 Envoy 作為 sidecar 代理的 Kuma 和 Istio,您需要在 Springboot 應用程序中重新實現大部分 Envoy。
我認為您最好嘗試將 SpringBoot“sidecar”中的邏輯移動到 Kuma 策略或某個網關中。 例如, Apache APISIX 支持 Java 插件。
我不確定我是否正確回答了這個問題。 看起來您需要有兩個 SpringBoot 應用程序,一個是主應用程序,另一個是它的邊車。 這聽起來不像是一件不尋常的事情。
以下是您可能擁有的 Kubernetes 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
在此處查看有關此 yaml 文件的更多詳細信息: https ://kubernetes.io/docs/concepts/workloads/controllers/deployment/
這是非常基本的。 重點是 sidecar 是同一部署中的第二個容器。
他們將共享相同的文件系統。 Sidecar 應用程序可以通過 localhost 尋址:(例如 HTTP://localhost:8888 在我們的例子中)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.