先来说明几个概念:

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状态了,问题解决

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐