先来说明几个概念:
PV
(
Persistent Volume
)是持久化卷的意思,是对底层的共享存储的一种抽象。一般情况下
PV
由
kubernetes
管理员进行创建和配置,它和底层具体的共享存储技术有关,并通过插件完成和共享存
储的对接。
PVC
(
Persistent Volume Claim
)是持久化卷声明的意思,是用户对于存储需求的一种声明。换言
之,
PVC
其实就是用户向
kubernetes
系统发出的一种资源需求申请。
使用StorageClass时要创建pv,pvc,pod
在高级存储中的静态模式下,k8s管理员预先创建许多各种各样的pv,等待pvc申请使用。如果是静态模式的话,要严格按照pv,pvc,pod的创建顺序。而删除pod则顺序反之
动态模式则是管理员无须预先创建PV,而是通过StorageClass自动完成PV的创建以及与PVC的绑
定。
问题:pod创建后出现pending状态
1.用describe查看这个pod的详细信息
看到最后一行有报错信息,说这个test-claim未被找到,说明创建pod上一步的创建pvc有问题,才导致PersistentVolumeClaim找不到(这个长单词简称pvc)
查看一下上一步创建pvc时的yaml文件
我是yaml文件的其中一行少了空格,导致这个yaml文件格式不正确,底下的截图是我修改后的正确的yaml文件
然后创建pvc
因为这次我用的是动态模式存储,我已经创建过storage class了,所以创建完这个pvc后,pv会动态创建
可以看出来创建pvc之后pv自己创建并且绑定了该pvc
回到刚才的问题,pvc创建成功后,再删除原先的nginx-pod,重新创建pod
发现nginx-pod已经是running状态了,问题解决