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

k8s 之动态创建pv失败(踩坑)

作者:程序那点事儿 日期:2024/02/05 18:53


初学容易范的错!

问题简述:

StorageClass创建成功,StatefulSet 启动不成功,与pvc关联的po和pvc一直是pending状态。 也就是说,StorageClass没有动态创建pv,所以pvc无法与pv绑定。

原因是制备器创建不了pv,是制备器使用的账号没有仅限(账号名称空间与绑定subjects下的名称空间不一致导致。subjects下如果kind是sa描述的是账号及账号所在的名称空间)。

解决办法:

  1. 不使用官方的provisioner制备器镜像,使用阿里云镜像

registry.cn-beijing.aliyuncs.com/pylixm/nfs-subdir-external-provisioner:v4.0.0

  1. 查看制备器provisioner启动状态

kubectl get po -n kube-system | grep nfs

  1. 查看provisioner的日志,发现账号缺少权限(是看这个日志才发现问题的)

kubectl logs -f nfs-client-provisioner-845cf4584c-4gzlz -n kube-system

原因是账号名称空间与角色绑定的名称空间要一致

修改之后删除账号、删除制备器、删除sts、删除sc

kubectl delete -f nfs-rbac.yaml

kubectl delete -f nfs-provisioner-pv.yaml

kubectl delete -f nfs-storageclass.yaml

kubectl delete -f nfs-statefulset.yaml

全部重新创建

kubectl apply -f nfs-rbac.yaml

kubectl apply -f nfs-provisioner-pv.yaml

kubectl apply -f nfs-storageclass.yaml

kubectl apply -f nfs-statefulset.yaml

kubectl get sa -n kube-system | grep nfs

kubectl get po -n kube-system | grep nfs

查看日志就成功了

查看pv/pvc是绑定状态了,sts的po也是running壮态了。成功!


http://www.kler.cn/news/335541.html

相关文章:

  • 在UniApp中高效处理大量文件请求的策略
  • 市场中的新兴力量与未来发展
  • Android 安卓内存安全漏洞数量大幅下降的原因
  • 项目-坦克大战学习-游戏结束
  • 深入剖析 Golang 的错误处理机制:让你的代码更加健壮与优雅
  • pillow常用知识
  • Leetcode 1631. 最小体力消耗路径
  • SpringBoot实现:校园资料分享平台开发指南
  • STM32重启源深度解析
  • Vite多环境配置与打包:
  • 题解:SP1741 TETRIS3D - Tetris 3D
  • AVL树的实现
  • 【LeetCode-热题100-128题】官方题解好像有误
  • Django学习笔记五:templates使用详解
  • 二叉搜索树(c++版)
  • No module named ‘_ssl‘
  • 通信工程学习:什么是B/S浏览器服务器模式
  • 内网穿透工具ngrok
  • 彻底释放服务器空间:多用户环境下Anaconda共享与优化指南
  • YOLOv7改进:Unified-loU,用于高品质目标检测的统一loU ,2024年8月最新IoU