当前位置: 首页 > article >正文

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

 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安装的驱动接口

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 

本文结束,谢谢


http://www.kler.cn/a/104961.html

相关文章:

  • HarmonyOS鸿蒙原生应用开发设计- 华为分享图标
  • Vue3中的v-model
  • docker自动构建jar镜像,自动发布最新镜像的简单shell脚本
  • 【码银送书第九期】《ChatGPT 驱动软件开发:AI 在软件研发全流程中的革新与实践》
  • 【CMN】Power management
  • 【深度学习实验】循环神经网络(五):基于GRU的语言模型训练(包括自定义门控循环单元GRU)
  • 26装饰器3(在面向对象的过程中使用装饰器)
  • 墨西哥专线大型工程设备海运
  • 0基础学习PyFlink——使用Table API实现SQL功能
  • uniapp实现登录组件之外区域置灰并引导登录
  • 从零开始 Spring Cloud 15:多级缓存
  • 16 用于NOMA IoT网络上行链路安全速率最大化的HAP和UAV协作框架
  • [Python从零到壹] 七十二.图像识别及经典案例篇之OpenGL入门及绘制基本图形和3D图
  • https下载图片
  • 强化学习问题(7)--- Python和Pytorch,Tensorflow的版本对应
  • 腾讯云创建了jenkins容器,但无法访问
  • Hadoop3.0大数据处理学习4(案例:数据清洗、数据指标统计、任务脚本封装、Sqoop导出Mysql)
  • torch张量的降维与升维
  • mac vscode 使用 clangd
  • 如何集成验证码短信API到你的应用程序