kubernetes - 部署和PVC

标签 kubernetes kubernetes-pvc

我有以下 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

如果我使用单个副本运行Deployment,我的PV将由vsphere StorageClass 动态创建

但是,如果我有两个以上的副本,它将无法创建第二个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]

最佳答案

However, if I have more than 2 replicas it will fail to create the second PV



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

在您的情况下,每个部署都具有相同的PersistentVolumeClaim(即ReadWriteOnly,并且无法在第二个请求上挂载),而使用volumeClaimTemplates时,每个副本提供了一个不同的资源。

关于kubernetes - 部署和PVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50761264/

相关文章:

database - 集群数据库如何处理 Kubernetes 上的主节点宕机?

Kubernetes:角色与集群角色

kubernetes - 如何使kubernetes cronjob从文件夹中识别ssh key

docker - 将持久卷声明添加到容器中的现有文件

mongodb - 保留 Persistence Volume 并将 PV 用于新的 Helm 安装

Kubernetes 使用 "Kubectl delete -f PVC_NAME"防止 PVC 被删除

kubernetes - matchExpressions 如何在 NetWorkPolicy 中工作

docker - 不支持将 Docker Compose 迁移到 Kubernetes 卷挂载

kubernetes - 为什么 ReadWriteOnce 在不同的节点上工作?

azure - 我可以通过标签或选择器而不是名称将 K8s 部署链接到 PVC 吗?