pv如下
kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
redis-pv1 5Gi RWO Recycle Available nfs 35m
redis-pv2 5Gi RWO Recycle Available nfs 35m
redis-pv3 5Gi RWO Recycle Available nfs 35m
redis-pv4 5Gi RWO Recycle Available nfs 35m
redis-pv5 5Gi RWO Recycle Available nfs 35m
redis-pv6 5Gi RWO Recycle Available nfs 35m
pvc
kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
redis-data-redis-app-0 Pending nfs 4m29s
可以看到pvc一直处于Pending
状态
排错开始
显示找不到nfs
kubectl describe pvc redis-data-redis-app-0
Warning ProvisioningFailed 10s persistentvolume-controller storageclass.storage.k8s.io "nfs" not found
pv的STORAGECLASS
(存储类型)为nfs,访问模式为RWO。
kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
redis-pv1 5Gi RWO Recycle Available nfs 19m
发现问题,访问模式为ReadOnlyMany
,更改为ReadOnlyMany
cat redis.yaml
volumeClaimTemplates:
- metadata:
name: redis-data
spec:
accessModes: [ "ReadOnlyMany" ]
storageClassName: "nfs"
resources:
requests:
storage: 5Gi
重新生成pvc
kubectl delete pvc redis-data-redis-app-0
kubectl delete -f redis.yaml
kubectl create -f redis.yaml
已经绑定。
kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
redis-data-redis-app-0 Bound redis-pv6 5Gi RWO nfs 6m16s
总结
pv的ACCESS MODES
(访问模式)与STORAGECLASS
(存储类型)需要与pvc一致,方可绑定。