用 k8s 1.20以上版本解决动StorageClass态创建PVC一直处于 Pending 状态

用 k8s 1.20以上版本,通过 kubectl get pvc,发现 PVC一直处于 Pending 状态。通过kubectl describe pvc [pvc名称]描述,
发现如下错误:Waiting for a volume to be created either by the external provisioner 'fuseim.pri/ifs' or manually by the system administrator.

原因:在 k8s 1.20 之后,出于对性能和统一 apiserver 调用方式的初衷,k8s 移除了对 SelfLink 的支持,而默认上面指定的 provisioner 版本需要 SelfLink 功能,因此 PVC 无法进行自动制备

原始解决办法:
1.启用SelfLink
kube-apiserver.yaml 新增:–feature-gates=RemoveSelfLink=false

2.使用不需要SelfLink的provisioner
比如:
registry.cn-beijing.aliyuncs.com/pylixm/nfs-subdir-external-provisioner:v4.0.0
gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.0
                     
但是很坑,这两种都不行!!!!!!!!!

目前解决办法

1.由于现在镜像源都被ban了网上随便找个nfs-subdir-external-provisioner镜像源
我这里随便找了个版本nfs-subdir-external-provisioner:v4.0.2

2.docker load -i nfs-subdir-external-provisionerv402.tar

3.给镜像打标签不然kubectl找不到
docker tag 932b0bface75 nfs-subdir-external-provisioner:v4.0.2
 
4.启动deploy
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    --set nfs.server=192.168.1.101 \
    --set nfs.path=/home/nfs/rw \
    --set image.repository=nfs-subdir-external-provisioner \
    --set image.tag=v4.0.2 \
    --set image.pullPolicy=IfNotPresent

5.kubectl get pvc 终于running了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值