PV и ПВХ - Kube-EFS
Я использую PV с EFS. Я создал PV и ПВХ. Мой 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)
1 ответ
Похоже, вам нужно создать новый PVC для нового Pod, чтобы использовать существующий PV.
Если вы удалите PV.Spec.ClaimRef
ссылка в настройках PV, любой новый PVC с соответствующей настройкой может использовать его. Или, если вы хотите назначить PV для точного PVC, вы можете заполнить PV.Spec.ClaimRef
с именем PVC, а затем создать PVC с этим именем.
Не забудьте использовать Retain
политика для 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"