Что такое PersistentVolumeClaim pending?
Ошибка PersistentVolumeClaim pending
возникает, когда Kubernetes не может привязать PVC к доступному PersistentVolume.
Причины возникновения
- Нет доступных PersistentVolume
- Несоответствие StorageClass
- Недостаточно места на storage
- Проблемы с правами доступа
- Неправильная конфигурация StorageClass
- Проблемы с CSI driver
Как отладить ошибку
- Проверь PVC -
kubectl get pvc
- Проверь PV -
kubectl get pv
- Проверь StorageClass -
kubectl get storageclass
- Проверь события -
kubectl describe pvc pvc-name
- Проверь storage capacity -
kubectl top nodes
Как исправить ошибку
1. Создай PersistentVolume
1apiVersion: v1
2kind: PersistentVolume
3metadata:
4 name: my-pv
5spec:
6 capacity:
7 storage: 10Gi
8 accessModes:
9 - ReadWriteOnce
10 persistentVolumeReclaimPolicy: Retain
11 storageClassName: local-storage
12 local:
13 path: /mnt/data
14 nodeAffinity:
15 required:
16 nodeSelectorTerms:
17 - matchExpressions:
18 - key: kubernetes.io/hostname
19 operator: In
20 values:
21 - node-1
2. Настрой StorageClass
3. Создай PVC с правильными параметрами
4. Используй динамическое provisioning
5. Проверь и исправь права доступа
6. Используй volume в Pod
Как мониторить подобные ошибки
- Мониторь доступность storage
- Настрой алерты на pending PVC
- Проверяй capacity storage
- Логируй события storage
FAQ
В: Что делать, если нет доступных PV?
О: Создай новые PV или настрой динамическое provisioning через StorageClass.
В: Как выбрать правильный StorageClass?
О: Учитывай требования к производительности, доступности и стоимости.
В: Что делать с проблемами CSI driver?
О: Проверь установку CSI driver, логи и совместимость версий.
Лучшие практики
- Используй StorageClass для динамического provisioning
- Планируй capacity заранее
- Настрой backup стратегии
- Мониторь использование storage
- Документируй storage требования