我有一個小問題,需要知道什麼是解決此問題的最佳方法/解決我的問題。共享相同主機路徑/ pvc的多個Kubernetes莢會重複輸出
我已經在Kubernetes上部署了幾個豆莢,到目前爲止我很喜歡與Kubernetes一起學習和使用。所有的持續量,量索賠等等。並可以在主機上看到我的數據,因爲我需要這些文件進行進一步處理。
現在的問題是共享相同卷聲明的2個Pod(2個副本)正在寫入主機上的相同位置,但不幸的是導致數據在輸出文件中被複制。
我需要的是:
- ,將主機上的每個吊艙的唯一的輸出。實現這一目標的唯一方法是由 擁有兩個部署文件,在我的情況下,每個文件都使用不同的卷索賠/永久 卷?同時不知道這是否是未來更新,升級,某些數量的可用莢的最佳方法...等等。
- 或者我仍然可以擁有一個具有2個或更多副本的部署文件,並且仍然可以避免輸出共享相同的pvc時是否有重複?
請注意,我有一個節點部署,這就是爲什麼我目前正在使用hostpath。
創建PV:
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
我決定現在使用hostname方法作爲快速解決方案,但仍然是同樣的問題!如果我使用/ path/$ HOSTNAME /或文件名 - $ HOSTNAME,我仍然只能得到一個文件,在兩個窗格之間共享。我甚至意識到一個pod將在其他pod上擁有其自己主機名的文件或目錄,並且兩者都將開始使用/共享相同的文件。不知道爲什麼當使用主機名時,爲什麼不能在路徑中看到不同的文件名,這是唯一的。 – Zee
我可能是錯的,但看起來像是在兩個部署副本之間使用相同的卷聲明時,或者更多,一旦創建了第二個(最新)pod,它將成爲使用PVC的那個,即使名稱或路徑是唯一的每個豆莢因爲主機名。 – Zee
如果您在問題中發佈完整的yaml文件可能會有所幫助。 –