【发布时间】:2018-03-26 02:01:57
【问题描述】:
我有一个小问题,需要知道解决/解决我的问题的最佳方法是什么。
我在 Kubernetes 上部署了几个 pod,到目前为止,我很喜欢学习和使用 Kubernetes。是否所有的持久卷,卷声明......等等。并且可以在主机上看到我的数据,因为我需要这些文件进行进一步处理。
现在的问题是共享相同卷声明的 2 个 pod(2 个副本)正在写入主机上的相同位置,这是预期的,但不幸的是导致数据在输出文件中重复。
我需要的是:
- 在主机上拥有每个 pod 的唯一输出。实现这一目标的唯一方法是 就我而言,有两个部署文件,每个文件都使用不同的卷声明/持久性 体积 ?同时不确定这是否是未来更新、升级、一定数量 pod 的可用性等的最佳方法。
- 或者我是否仍然可以拥有一个具有 2 个或更多副本的部署文件,并且在共享同一个 pvc 时仍然避免输出重复?
请注意,我有一个节点部署,这就是我目前使用主机路径的原因。
创建光伏:
kind: PersistentVolume
apiVersion: v1
metadata:
name: ls-pv
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/ls-data/my-data2"
声明-pv:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: ls-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
我如何在我的部署中使用我的 pv:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: logstash
namespace: default
labels:
component: logstash
spec:
replicas: 2
selector:
matchLabels:
component: logstash
#omitted
ports:
- containerPort: 5044
name: logstash-input
protocol: TCP
- containerPort: 9600
name: transport
protocol: TCP
volumeMounts:
- name: ls-pv-store
mountPath: "/logstash-data"
volumes:
- name: ls-pv-store
persistentVolumeClaim:
claimName: ls-pv-claim
【问题讨论】:
标签: kubernetes