我试图创建pv和pvc资源,kuberctl create -f pv-definition.json但k8s没有取得任何进展,它只是Pending为它们报告状态.
查看kubectl get events并记录api和controller,但我没有看到与pv或pvc创建消息相关的任何内容.我预先在gcloud上创建了磁盘,并且我已经验证了名称和磁盘大小是否匹配.
pv定义非常基础:
{
"apiVersion": "v1",
"kind": "PersistentVolume",
"metadata": {
"name": "test-0b-pv"
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"capacity": {
"storage": "50Gi"
},
"gcePersistentDisk": {
"fsType": "ext4",
"pdName": "test-0b"
},
"persistentVolumeReclaimPolicy": "Retain"
}
}
Run Code Online (Sandbox Code Playgroud)
有没有人有任何调试建议?我重新启动了k8s-master服务无济于事.
我有同样的问题,并通过storageClassName: value明确添加到PV和PVC来解决它.对于价值,我用过standard.
在这种情况下,问题可能是由DefaultStorageClass配置引起的.有关详细信息,请参阅:https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
上面的大多数答案从inconsistent or incorrect存储类的角度写了一个解决方案,特别是在没有提供的情况下,PersistentVolumeClaims但是我们在这里可能有不同的原因(如下所述)
问题陈述:
如果你已经删除PersistentVolumeClaim然后用相同的定义重新创建它,它将Pending永远存在,为什么?
解释:
"persistentVolumeReclaimPolicy": "Retain"在PersistentVolume(默认为保留策略)PersistentVolumeClaim,则PersistentVolume仍然存在并考虑该卷released。但它尚不能用于其他人,claim因为前一个索赔人的数据仍保留在卷上。解决方案:
PersistentVolume(相关的底层存储资产/资源,如 EBS、GCE PD、Azure 磁盘等将不会被删除,仍然存在)请注意,如果您仍然需要相同的数据,只需创建一个PersistentVolume具有相同存储资产定义的新数据,那么您应该可以PersistentVolumeClaim再次创建。
最后要提及Retain的不是 的唯一选项persistentVolumeReclaimPolicy,以下是您可能需要根据用例场景使用或尝试的其他一些选项:
回收:对卷执行基本清理(例如,rm -rf //*) - 使其再次可用于新的声明。只有NFS和HostPath支持回收。
删除:AWS EBS, GCE PD, Azure Disk, or OpenStack Cinder...etc删除卷等关联的存储资产
更多信息请查看kubernetes 文档
| 归档时间: |
|
| 查看次数: |
4505 次 |
| 最近记录: |