Назад | Перейти на главную страницу

пв и пвх - kube- efs

Я использую PV с EFS. Я создал PV и PVC. Мой PV возвращается в статус выпущенного после того, как я удалю свои StatefulSets. Когда я удаляю и повторно применяю свои StatefulSets, он не привязывается к тому же PV, вместо этого отображается статус PVC. У меня вопрос: как мне заставить свои поды в StatefulSet отсканировать тот же PV?

[kubeXpress]# k get pv

NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   **STATUS**     CLAIM            STORAGECLASS   REASON    AGE

efsvol    1Mi        RWO            Retain           **Released**   default/efsvol   aws-efs                  10m

[kubeXpress]# k get pvc
efsvol    **Pending**                                       aws-efs        10m

[kubeXpress]# k get po
NAME                                        READY     STATUS    RESTARTS   AGE
web-0                                       0/1       **Pending**   0          4m

[kubeXpress]# k describe po web-0
Events:
Type     Reason            Age                From               Message
  ----     ------            ----               ----               -------
Warning  FailedScheduling  2m (x37 over 12m)  default-scheduler  pod has unbound PersistentVolumeClaims (repeated 6 times)

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

Если вы удалите PV.Spec.ClaimRef ссылка в настройках PV, любой новый PVC с соответствующими настройками может использовать его. Или, если вы хотите назначить PV конкретному PVC, вы можете заполнить PV.Spec.ClaimRef с именем PVC, а затем создайте PVC с этим именем.

Не забывайте использовать Retain политика для PV для предотвращения удаления после его выпуска.

Пример PV:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0001
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  nfs:
    path: /tmp
    server: 172.17.0.2
  persistentVolumeReclaimPolicy: Retain            #Here is policy
  claimRef:                                        #Here is claim reference
    name: claim1
    namespace: default

Пример ПВХ:

apiVersion: "v1"
kind: "PersistentVolumeClaim"
metadata:
  name: "claim1"
spec:
  accessModes:
    - "ReadWriteOnce"
  resources:
    requests:
      storage: "1Gi"
  volumeName: "pv0001"