【问题标题】:Deployment and PVCs部署和 PVC
【发布时间】:2018-06-08 13:02:44
【问题描述】:

我有以下 PersistentVolumeClaim

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nginx-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 256Mi
  storageClassName: fask

部署

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
        volumeMounts:
        - name: data
          mountPath: "/var/www/html"
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: nginx-pvc

如果我使用 single 副本部署运行,我的 PV 将由 vsphere StorageClass

动态创建

但是,如果我有超过 2 个副本,它将无法创建第二个 PV:

AttachVolume.Attach failed for volume "pvc-8facf319-6b1a-11e8-935b-00505680b1b8" : Failed to add disk 'scsi0:1'.
Unable to mount volumes for pod "nginx-deployment-7886f48dcd-lzms8_default(b0e38764-6b1a-11e8-935b-00505680b1b8)": timeout expired waiting for volumes to attach or mount for pod "default"/"nginx-deployment-7886f48dcd-lzms8". list of unmounted volumes=[data]. list of unattached volumes=[data default-token-5q7kr]

【问题讨论】:

  • 你的供应商是什么?你能添加你的存储类清单吗? PVC 是用 ReadWriteOnce 定义的,你使用 Deployment 而不是 StatefulSet...

标签: kubernetes kubernetes-pvc


【解决方案1】:

但是,如果我有超过 2 个副本,它将无法创建第二个 PV

然后您应该在其中使用StatefulSetvolumeClaimTemplates 而不是DeploymentPersistentVolumeClaim

在您的情况下,每个部署都具有相同的 PersistentVolumeClaim(即 ReadWriteOnly,不能在第二次请求时挂载),而使用 volumeClaimTemplates,您会为每个副本配置不同的一个。

【讨论】:

  • 好的,这是有道理的。 VsphereVolume 仅支持这些访问模式kubernetes.io/docs/concepts/storage/persistent-volumes/…
  • 如果所有 3 个 Pod 都在同一个节点上,我认为这会起作用???即文档说 ReadWriteOnce – 卷可以由单个节点以读写方式安装
  • 如果你选择 volumeClaimTemplate (kubernetes.io/docs/concepts/workloads/controllers/statefulset/…),那么你最终会为每个副本创建单独命名的 PVC(不管节点分布如何),每个副本都有自己命名的 PV(即是 ReadWriteOnce)。至于 vsphere,是的,文档说 ReadWriteMany 仅在 pod 并置时才有效。您是尝试在每个 pod 上安装完全相同的卷还是拥有单独但持久的卷?
猜你喜欢
  • 2019-09-24
  • 2021-02-25
  • 2020-10-13
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 2023-01-22
  • 1970-01-01
相关资源
最近更新 更多