mysql - 创建“。”时出错:persistentvolumeclaims“wp-pv-claim”被禁止:超出配额
问题描述
我正在尝试使用Kubernetes链接运行 WordPress,唯一的更改是我更改20Gi
为5Gi
,但是当我运行时kubectl apply -k .
,我收到此错误:
Error from server (Forbidden): error when creating ".": persistentvolumeclaims "wp-pv-claim" is forbidden: exceeded quota: storagequota, requested: requests.storage=5Gi, used: requests.storage=5Gi, limited: requests.storage=5Gi
我搜索但没有找到任何与我相关的答案(甚至可能我错了)。
你能回答我这些问题吗:
- 如何解决上述问题?
- 如果volume的大小限制为5G,那么pod不能大于5G吗?我的意思是,如果我执行到 pod 并运行类似的命令
dd if=/dev/zero of=file bs=1M count=8000
,它是否应该创建一个 8G 文件?我的意思是这个配额和数量限制了整个 pod?或者只有一个特定的路径,比如/var/www/html
?
编辑 1
describe pvc mysql-pv-claim
Name: mysql-pv-claim
Namespace: default
StorageClass:
Status: Pending
Volume:
Labels: app=wordpress
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
Used By: wordpress-mysql-6c479567b-vzpm5
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal FailedBinding 4m (x222 over 59m) persistentvolume-controller no persistent volumes available for this claim and no storage class is set
解决方案
我决定总结我们的评论对话,以提高可读性和可见性。
这个问题起初似乎是由资源配额引起的。
服务器错误(禁止):创建“。”时出错:persistentvolumeclaims“wp-pv-claim”被禁止:超出配额:storagequota,请求:requests.storage = 5Gi,使用:requests.storage = 5Gi,受限:请求。存储=5Gi
看起来已经存在 PVC 并且不允许创建新的 PVC。
OP 删除了资源配额,尽管在这种情况下没有必要,因为真正的问题在于 PVC。
kubectl describe pvc mysql-pv-claim
显示以下事件:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal FailedBinding 4m (x222 over 59m) persistentvolume-controller no persistent volumes available for this claim and no storage class is set
活动讯息:
persistentvolume-controller 没有可用于此声明的持久卷,并且未设置存储类
由于 OP 使用 kubeadm 创建了集群,而 kubeadm 并没有提供开箱即用的预部署存储提供程序;这意味着它需要手动添加。(Storage Provider 是一个可以创建卷并挂载它的控制器)。
每个 StorageClass 都有一个配置器,用于确定用于配置 PV 的卷插件。必须指定此字段。由于集群中没有存储类,OP 决定创建一个并选择本地存储类,但忘记了:
本地卷目前不支持动态配置 [...]。
和
本地卷只能用作静态创建的 PersistentVolume。不支持动态配置
这意味着必须手动创建本地卷。
推荐阅读
- django - 如何在 django 中将任何 api 请求从 http 重定向到 https?
- hash - 如何从 Hyperledger Fabric 重新计算私有数据哈希
- django - Django Saleor 在 Windows 上安装 Dashboard 2.0
- c++ - LAPACKE 函数中对角化所需的完整矩阵或三角部分?
- java - 为什么从 Lock 创建条件,而不是使用“new”运算符?
- json - 如何解决 Odoo 控制器中的 SSL 错误分配键值
- sql - 在 Excel 公式中引用日期单元格时保持单元格格式
- javascript - 如何将包含符号的数组转换为字符串?
- python - Anaconda env 正在使用另一个 env 的站点包
- python - 关于 python argparse