2

我目前已经使用名称设置了一个 PVC,minio-pvc并基于带有值的stable/minio 图表创建了一个部署

mode: standalone
replicas: 1
persistence:
  enabled: true
  existingClaim: minio-pvc

如果我增加副本数量会怎样?如果多个 pod 尝试同时写入 PVC,我是否会冒损坏数据的风险?

4

2 回答 2

1

不要将部署用于有状态的容器。而是使用 StatefulSets。StatefulSets 专为运行有状态的容器(如数据库)而设计。它们用于保持容器的状态。

请注意,每个 pod 都将通过 pvc 绑定一个单独的持久卷。不可能有多个 pod 实例写入同一个 pv。希望我回答了你的问题。

于 2019-02-19T18:03:23.977 回答
0

如果您坚持使用 Deployments 而不是 StatefulSets,那么多个副本写入同一个 PVC 是不可行的,因为不能保证不同的副本被安排在同一个节点上,因此您可能有一个挂起的 pod等待建立与卷的连接并失败。解决方案是选择一个特定节点并让所有副本在同一个节点上运行。

运行以下命令并将标签分配给您的一个节点:

kubectl label nodes <node-name> <label-key>=<label-value>

假设我们选择label-key成为labelKeylabel-value成为node1。然后您可以继续将以下内容添加到您的 YAML 文件中,并将 pod 安排在同一节点上:

api版本:应用程序/v1
种类:部署
元数据:
  名称:我的应用
  标签:
    应用程序:我的应用程序
规格:
  复制品:3
  模板:
    规格:
      节点选择器:
        标签键:节点1
      容器:
      ...
于 2019-02-19T15:37:02.247 回答