Статус PVC застрял на ожидающем и доступен статус PV

#kubernetes #persistent-volumes #kubernetes-pvc

#kubernetes #постоянные тома #kubernetes-pvc

Вопрос:

Я пытался увеличить размер PVC с 10G до 20G, поскольку мы работаем на версии 1.9.3, где это невозможно сделать онлайн. Итак, я удалил PVC и создал с новым значением 20G в качестве хранилища.

 pvc-b196868cd-bc75-12e8-ad32-075738325c   100Gi      RWO            Retain           Released    myapp/myapp-backup-pv-claim`                                persistent                   4m
  

Когда я удалил, статус PV изменился на «Выпущен», и когда я попытался воссоздать PVC, он был создан, но со статусом «утерян»

 myapp-myapp-backup-pv-claim                 Lost      pvc-03b34iknca1-6fr3-19ea-af3b-0073yh2u97f   0                         ntfts19-k8s-0101   13m
  

Мы используем тома Vsphere. Попробовал решение «kubectl patch pv pv-for-rabbitmq -p ‘{«spec»:{«claimRef»: null}}'» это помогло мне вернуть pv в статус «Доступно», теперь ПВХ находится в состоянии «Ожидание».

 pvc-b196868cd-bc75-12e8-ad32-075738325c   100Gi      RWO            Retain           Available    myapp/myapp-backup-pv-claim`                                persistent                   2m

myapp-myapp-backup-pv-claim                 Pending      pvc-03b34iknca1-6fr3-19ea-af3b-0073yh2u97f   0                         ntfts19-k8s-0101   28m 
  

Описание PV:

 Name:          myapp-myapp-backup-pv-claim   
Namespace:     myapp
StorageClass:  ntfts19-k8s-0101 
Status:        Pending
Volume:        pvc-03b34iknca1-6fr3-19ea-af3b-0073yh2u97f 
Labels:        app=my-app
Annotations:   <none>
Finalizers:    []
Capacity:      0
Access Modes:
Events:        <none>
  

Описание PVC:

 Name:            pvc-b196868cd-bc75-12e8-ad32-075738325c
Labels:          <none>
Annotations:     <none>
StorageClass:    persistent
Status:          Available
Claim:           myapp/myapp-backup-pv-claim
Reclaim Policy:  Retain
Access Modes:    RWO
Capacity:        100Gi
Message:
Source:
    Type:        vSphereVolume (a Persistent Disk resource in vSphere)
    VolumePath:      StoragePolicyName:  %v

    FSType:                            [dsNTFTS19_0101] kubevols/kubernetes-dynamic-pvc-b196868cd-bc75-12e8-ad32-075738325c.vmdk
%!(EXTRA string=ext4, string=)Events:  <none>
  

Комментарии:

1. Не могли бы вы вставить выходные данные kubectl describe <<постоянный объем>> и kubectl describe <<утверждение о постоянном объеме>>

2. Описал pv и pvc, но теперь это другая проблема, поэтому я изменил вопрос.

Ответ №1:

Проблема заключалась в отсутствии аннотаций, поскольку это хранилище vSphere, аннотации volume.beta.kubernetes.io/storage-provisioner=kubernetes.io/vsphere-volume являются обязательными.

Ответ №2:

Класс хранилища для PV и PVC должен быть одинаковым. Панель управления может связать PVC с PV только в том случае, если она может найти PV с тем же классом хранения.

У вас есть PV storageClass: ntfts19-k8s-0101 и у вашего PVC есть storageClass: persistent . Таким образом, control plane не смог найти соответствующий PV, у которого есть постоянный класс StorageClass.

Удалите и воссоздайте PVC в соответствии с классом хранения PV.

Пожалуйста, обратитесь к официальной документации

Комментарии:

1. Я изменил класс хранения PVC на ntfts19-k8s-0101 , но это не устранило проблему, она все еще находится в состоянии ожидания. Также я попытался изменить их оба на постоянный класс хранения, но безуспешно.

2. Не могли бы вы также обновить свои режимы доступа, чтобы они соответствовали PV?

3. Для обоих режимов доступа уже установлено значение ‘ReadWriteOnce’, но при описании pvc он не показывает никаких режимов доступа.