我有使用 Apache Camel 和 ActiveMQ 构建的现有应用程序。作为迁移到 Kubernetes 的一部分,我们正在做的是将使用 Apache Camel 开发的相同服务迁移到 Kubernetes。我需要部署 ActiveMQ,这样我就不会丢失数据,以防其中一个 Pod 死机。
我现在正在运行一个 RelicaSet 值为 2 的部署。这将启动 2 个 Pod,并且前面有一个 Service,我可以在至少 1 个 Pod 启动时服务任何请求。但是,如果一个 Pod 死了,我不想丢失数据。我想在 Pod 之间实现类似共享文件系统的东西。我的环境在 AWS 中,所以我可以使用 EBS。你能建议,如何实现这一目标。
下面是我的部署和服务 YAML。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: smp-activemq
spec:
replicas: 1
template:
metadata:
labels:
app: smp-activemq
spec:
containers:
- name: smp-activemq
image: dasdebde/activemq:5.15.9
imagePullPolicy: IfNotPresent
ports:
- containerPort: 61616
resources:
limits:
memory: 512Mi
---
apiVersion: v1
kind: Service
metadata:
name: smp-activemq
spec:
type: NodePort
selector:
app: smp-activemq
ports:
- nodePort: 32191
port: 61616
targetPort: 61616