文章目录
概述
事情的起因是基于k8s集群搞东搞西搞项目时,使用脚本一键部署平台时突然僵住了,直接返回超时信息,通过各种手段对 shell 脚本进行debug,最终定位到是在使用yaml文件创建pod时一直卡在下面这步:PersistentVolumeClaim is not bond。
当然,这只是其中一条not boud的debug信息,整个部署中的和存储存储相关的组件,mysql、redis、mogodb和minio全都处于这种状态,查询相关pod,全都处于pending状态,等于压根没起来,查看pod的详细信息,得到如下Message:
对于k8s新手的我来说,无异于致命打击,pv和pvc是个啥都不知道。没关系!扶我起来!我还能学!
问题分析
每个人出现这个问题的原因不尽相同,最终的解决方案不具有普适性,但是了解整个过程有助于类似问题的思考,因此记录下整个思考过程。这个问题中有几个比较关键的词语,个人觉得有必要说明一下。每个概念名词都分为官方解释和个人理解。
PersistentVolume
官方解释:持久卷(PersistentVolume,PV)是集群中的一块存储,可以由管理员事先供应,或者使用存储类(Storage Class)来动态供应。 持久卷是集群资源,就像节点也是集群资源一样。
个人理解:其实说白了,卷就是用来存储k8s容器数据的一个抽象概念,但是一般容器绑定的都是临时卷,