首页 > 解决方案 > 创建“。”时出错:persistentvolumeclaims“wp-pv-claim”被禁止:超出配额

问题描述

我正在尝试使用Kubernetes链接运行 WordPress,唯一的更改是我更改20Gi5Gi,但是当我运行时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

我搜索但没有找到任何与我相关的答案(甚至可能我错了)。

你能回答我这些问题吗:

  1. 如何解决上述问题?
  2. 如果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

标签: mysqlwordpresskuberneteskubectl

解决方案


我决定总结我们的评论对话,以提高可读性和可见性。

这个问题起初似乎是由资源配额引起的。

服务器错误(禁止):创建“。”时出错: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。不支持动态配置

这意味着必须手动创建本地卷。


推荐阅读