Kubernetes:在同一PersistentVolume中使用两个VolumeMount

问题描述

可以在AKS中为两个不同的VolumeMount使用相同的Persistent Volume / PVC,这是我正在尝试的:

Pod Deploy /在这里,我在同一PersistentVolumeClaim中设置了两个VolumeMount

(...)
          volumeMounts:
            - name: data1
              mountPath: /opt/data/data1
              subPath: data1
            - name: data2
              mountPath: /opt/data/data2
              subPath: data2
      volumes:
        - name: data1
          persistentVolumeClaim:
            claimName: pv-data
        - name: data2
          persistentVolumeClaim:
            claimName: pv-data
(...)

在Pod部署中定义的data1和data2卷使用的持久卷声明

apiVersion: v1
kind: PersistentVolumeClaim
Metadata:
  name: pv-data
spec:
  accessModes:
  - ReadWriteMany # or ReadWriteOnce
  storageClassName: pv-storage
  resources:
    requests:
      storage: 40Gi

持久量

apiVersion: v1
kind: PersistentVolume
Metadata:
  name: pvdisk
spec:
  capacity:
    storage: 40Gi
  storageClassName: pv-storage
  azuredisk:
    kind: Managed
    diskName: disk1
    diskURI: /subscriptions/xxxxx/resourceGroups/xxxx/providers/Microsoft.Compute/disks/disk1
    fsType: ext4
  accessModes:
  - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  claimRef:
    name: pv-data
    namespace: default

当尝试应用此“想法”时,出现以下错误

找不到

persistentvolumeclaim“ data1” 警告FailedScheduling 1s(x2超过5s)认调度程序窗格有立即绑定的PersistentVolumeClaims(已重复2次)

谢谢 蒂亚戈

编辑 kubectl描述pvc pv数据

Name:          sonar-data
Namespace:     default
StorageClass:  sonar-storage
Status:        Bound
Volume:        pvdisk
Labels:        <none>
Annotations:   pv.kubernetes.io/bind-completed: yes
               pv.kubernetes.io/bound-by-controller: yes
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      40Gi
Access Modes:  RWO
VolumeMode:    Filesystem
Mounted By:    pod-69d6c8d89c-8t5lb
               pod-69d6c8d89c-8t5lb

kubectl描述了pv pvdisk

Name:            pvdisk
Finalizers:      [kubernetes.io/pv-protection]
StorageClass:    sonar-storage
Status:          Bound
Claim:           default/data
Reclaim Policy:  Retain
Access Modes:    RWO
VolumeMode:      Filesystem
Capacity:        40Gi
Message:
Source:
    Type:         Azuredisk (an Azure Data disk mount on the host and bind mount to the pod)
    diskName:     XXXXXX
    diskURI:      XXXXXX
    Kind:         Managed
    FSType:       ext4
    CachingMode:  ReadWrite
    ReadOnly:     false
Events:           <none>

荚形容

Volumes:
  data1:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  data1
    ReadOnly:   pv-data
  config-volume:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      data-config
    Optional:  false
  data2:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  pv-data
    ReadOnly:   false
    
(...)
    
Events:
  Type     Reason       Age                    From                                    Message
  ----     ------       ----                   ----                                    -------
Warning  FailedMount  2m21s (x63 over 142m)  kubelet,aks-pool1-19402761-vmss000002  Unable to mount volumes for pod "pod-69d6c8d89c-8t5lb_default(77795ef3-6c88-480a-b3ed-18b9453c742a)": timeout expired waiting for volumes to attach or mount for pod "default"/"pod-69d6c8d89c-8t5lb". list of unmounted volumes=[data1]. list of unattached volumes=[data1 config-volume data2 default-token-nhrrv]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)