簡體   English   中英

如何在 Kuma 或任何其他服務網格中的另一個 SpringBoot 應用程序中作為 SideCar 代理注入 SpringBoot 應用程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM