我知道如何使用Kuma或Istio作为服务网格,并将一个SideCar代理注入到一个现有的SpringBoot应用程序或任何其他应用程序中,但我们能否将一个SpringBoot应用程序作为SideCar代理注入到另一个SpringBoot应用程序中。
假设SideCar代理SpringBoot应用程序可能具有主SpringBoot服务中可能需要的基本内容(即身份验证、安全策略或任何其他类型的策略等)。并且相同的SideCar代理应用可以被注入到任何其他应用中。
这个问题可能听起来有点模糊,但如果有什么不清楚或令人困惑的地方,我可以提供更多的细节。
谢谢
发布于 2021-10-15 20:04:09
据我所知,这在Kuma或任何其他服务网格中都是不可能的。我相信您所要求的是能够自定义/替换服务网格所使用的代理。在Kuma和Istio的情况下,它们使用特使作为sidecar代理,您需要在Springboot应用程序中重新实现特使的大部分。
我认为您最好尝试将SpringBoot "sidecar“中的逻辑移动到Kuma策略或某个网关中。例如,Apache APISIX就有support for Java plugins。
发布于 2021-10-15 20:20:08
我不确定我是否正确地理解了这个问题。看起来你需要有两个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 )寻址。
https://stackoverflow.com/questions/69455449
复制相似问题