我正在尝试使用 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
我搜索了但没有找到任何与我的相关的答案(甚至可能我错了)。
你能回答我这些问题吗:
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
答案 0 :(得分:0)
我决定总结我们的评论对话,以提高可读性和可见性。
这个问题起初似乎是由资源配额引起的。
<块引用>来自服务器的错误(禁止):创建“.”时出错:persistentvolumeclaims“wp-pv-claim”被禁止:超出配额:storagequota,请求:requests.storage=5Gi,使用:requests.storage=5Gi,有限: requests.storage=5Gi
看起来已经存在 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 决定创建一个并选择 Local storage class 但忘记了:
<块引用>本地卷目前不支持动态配置 [...]。
和
<块引用>本地卷只能用作静态创建的 PersistentVolume。不支持动态配置
这意味着本地卷必须是 created manually。