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壮态了。成功!

相关推荐
chuanauc5 小时前
Kubernets K8s 学习
java·学习·kubernetes
小张是铁粉5 小时前
docker学习二天之镜像操作与容器操作
学习·docker·容器
烟雨书信5 小时前
Docker文件操作、数据卷、挂载
运维·docker·容器
IT成长日记5 小时前
【Docker基础】Docker数据卷管理:docker volume prune及其参数详解
运维·docker·容器·volume·prune
这儿有一堆花5 小时前
Docker编译环境搭建与开发实战指南
运维·docker·容器
LuckyLay5 小时前
Compose 高级用法详解——AI教你学Docker
运维·docker·容器
Uluoyu5 小时前
redisSearch docker安装
运维·redis·docker·容器
IT成长日记9 小时前
【Docker基础】Docker数据持久化与卷(Volume)介绍
运维·docker·容器·数据持久化·volume·
疯子的模样14 小时前
Docker 安装 Neo4j 保姆级教程
docker·容器·neo4j
虚伪的空想家14 小时前
rook-ceph配置dashboard代理无法访问
ceph·云原生·k8s·存储·rook