k8s 1.28版本:使用StorageClass动态创建PV,SelfLink 问题修复

  k8s中提供了一套自动创建 PV 的机制,就是基于 StorageClass 进行的,通过 StorageClass 可以实现仅仅配置 PVC,然后交由 StorageClass 根据 PVC 的需求动态创建 PV。

问题:

  使用 k8s 1.28版本,通过 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. If volume creation is delayed, please verify that the provisioner is running and correctly registered.

原因:

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

说明:

  使用的二进制方式安装的 k8s 1.28 版本,并没有 /etc/kubernetes/manifests/kube-apiserver.yaml 这个文件。网上通篇说的关于 SelfLink 的问题就是那两种解决方案。

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

但是,这两种方案,在 k8s 1.28 版本中,并不生效!!!

解决Pending方案:

1.使用 helm 安装 nfs驱动,并修改成自己的 nfs服务器ippath

shell 复制代码
 helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
 
 helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    --set nfs.server=192.168.0.32 \
    --set nfs.path=/data/nfs/rw

2.修改自己的 StorageClass文件,将驱动修改成 helm安装的驱动接口

yaml 复制代码
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: managed-nfs-storage
  namespace: kube-system
provisioner: cluster.local/nfs-subdir-external-provisioner # 修改此处!!!外部制备器提供者,编写为提供者的名称
parameters:
  archiveOnDelete: "false" 
reclaimPolicy: Retain 
volumeBindingMode: Immediate 

本文结束,谢谢

相关推荐
wdfk_prog6 分钟前
lely-canopen-rtt:为什么推荐在 RT-Thread 上使用 Lely CANopen 构建主站
java·运维·缓存·docker·容器
33三 三like1 小时前
安装并启动Docker
运维·docker·容器
滕州市燕猫虎计算机科技工作室个体工商户1 小时前
进入Docker容器内的命令行界面
运维·docker·容器
Spider Cat 蜘蛛猫1 小时前
微服务- 自动审核商家入驻
微服务·云原生·架构
陈聪.1 小时前
Kubernetes Service 与 Ingress 知识总结
云原生·容器·kubernetes
滕州市燕猫虎计算机科技工作室个体工商户4 小时前
查看Docker里的日志
运维·docker·容器
JavaPub-rodert4 小时前
Docker Compose 实战:一键部署你的完整应用环境
运维·docker·容器
IT利刃出鞘15 小时前
Docker Compose--安装WordPress--方法/示例
运维·docker·容器
分布式存储与RustFS20 小时前
RustFS 多协议接入全景:S3 之外,Swift/Keystone 与 SFTP/FTPS 怎么选
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
分布式存储与RustFS1 天前
在 Kubernetes 上用 RustFS Operator 给 Tenant 开 KMS 加密:spec.encryption 实战
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准