我不确定我的问题是否正确。看起来你需要有两个 SpringBoot 应用程序,一个是主应用程序,另一个是它的 sidecar。这听起来不是什么不寻常的事情。
这是您可能拥有的 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)