gpt4 book ai didi

kubernetes - 共享相同主机路径/pvc 的多个 Kubernetes pod 将重复输出

转载 作者:行者123 更新时间:2023-12-02 11:32:01 25 4
gpt4 key购买 nike

我有一个小问题,需要知道解决这个问题/解决我的问题的最佳方法是什么。

我已经在 Kubernetes 上部署了几个 pod,到目前为止,我很享受学习 Kubernetes 和使用 Kubernetes 的乐趣。是否所有持久卷、卷声明...等。并且可以在主机上查看我的数据,因为我需要这些文件进行进一步处理。

现在的问题是共享相同卷声明的 2 个 pod(2 个副本)正在写入主机上的相同位置,这是意料之中的,但不幸的是导致数据在输出文件中重复。

我需要的是:

  • 使主机上的每个 pod 具有唯一的输出。实现这一目标的唯一方法是
    有两个部署文件,就我而言,每个文件都使用不同的卷声明/持久性
    体积 ?同时不确定这是否是 future 更新、升级、特定数量 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"

    claim -光伏:
    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

    最佳答案

    根据您想要实现的具体目标,您可以使用 Statefulsets而不是部署。从 Statefulset 的 Pod 模板生成的每个 Pod 都可以拥有自己独立的 PersistentVolumeClaim,该 PersistentVolumeClaim 是从 volumeClaimTemplate 创建的(参见示例链接)。您将需要一个 StorageClass为此设置。

    如果您正在寻找更简单的东西,请写信给 /mnt/volume/$HOSTNAME从每个 Pod。这也将确保他们使用单独的文件,因为 Pod 的主机名是唯一的。

    关于kubernetes - 共享相同主机路径/pvc 的多个 Kubernetes pod 将重复输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46738296/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com