解决minikube创建的k8s集群中未发现storage-provisioner这个pod的问题

背景及问题处理过程:
1、在miniKube创建的k8s集群中练习创建动态持久卷声明(pvc)及StorageClass资源,在pvc定义中引用创建的StorageClass资源,然后查看pvc状态时发现处于pending。那是什么原因导致处于pending状态呢?
2、然后通过k describe pvc pvc名称 查看pvc的事件时发现有这么一句话:
“waiting for a volume to be created, either by external provisioner “k8s.io/minikube-hostpath” or manually created by system administrator”从这句话中可以看出是StorageClass无法创建持久卷(pv),导致pvc无法绑定pv。那是什么原因导致无法创建pv呢?
3、查看StorageClass的定义(通过其yaml文件),创建pv使用的插件是“ k8s.io/minikube-hostpath”,而在minikube文档中,负责自动创建HostPath类型pv的是storage-provisioner插件。那么storage-provisioner插件是否启用呢?
4、通过命令“minikube addons list”查看storage-provisioner插件的启用状态,发现是enable,说明是启用状态。那为啥没有起作用呢?
5、通过命令“k get pod -n kube-system”查看storage-provisioner对应的pod状态是否正常。发现没有storage-provisioner这个pod。正常应该有这个pod才对啊,为啥没有呢?怎么才能创建这个pod呢
6、进入minikube容器中(我本地环境是minikube是部署在一个docker容器),切换到/etc/kubernetes/addons目录下,查看storage-provisioner.yaml配置文件,找到下图中的pod部分的定义:
pod部分说明
通过定义看出,storage-provisioner这个pod中的容器是通过镜像“registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5”来创建的。继续在minikube容器中通过“docker images”命令来查看镜像,发现是有“registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5”这个镜像的,那么问题来了,为啥有镜像,却没有storage-provisioner这个pod呢?
7、正如文章标题所述,如何解决缺少storage-provisioner的问题呢?我用的方法是:通过重新添加storage-provisioner插件的方法。在宿主机上通过“minikube addons enable storage-provisioner”命令来重新激活storage-provisioner插件,通过“minikube addons list”确认插件storage-provisioner状态依旧是enable。然后再次通过命令“k get pod -n kube-system”查看storage-provisioner对应的pod状态是否正常。发现是正常的,状态为ready。(也可以进入到minikube容器中查看容器状态验证,docker ps -a).
8、通过步骤7问题已解决,此时再次查看pvc的状态,发现是Bound,说明绑定pv成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值