使用Kubectl编辑调整Kubernetes中PVC的尺寸

使用Kubectl编辑调整Kubernetes中PVC的尺寸,kubernetes,persistent-volume-claims,Kubernetes,Persistent Volume Claims,最近,我尝试在Kubectl edit pvc的帮助下调整PersistentVolumeClaim的大小,以将存储空间从10 Gi增加到70 Gi,但出现了错误: persistentvolumeclaims "myclaim" was not valid: * spec: Forbidden: spec is iimmutable after creation except resources.requests for bound claims 在Kubectl edi

最近,我尝试在
Kubectl edit pvc
的帮助下调整
PersistentVolumeClaim
的大小,以将存储空间从
10 Gi
增加到
70 Gi
,但出现了错误:

persistentvolumeclaims "myclaim" was not valid:
* spec: Forbidden: spec is iimmutable after creation except resources.requests for bound claims
Kubectl edit
的帮助下,如何在没有错误的情况下执行此操作


我已经在我支持的GKE测试集群上验证了这一点。正如我在评论中提到的,您正在尝试编辑
规范
,其中的一部分是
不可变的
,除了
资源.请求

但是,
storage
字段路径是
spec.resources.requests.storage
,我对编辑此字段没有任何问题。当您默认使用
kubectl edit
时,它使用的是
vi编辑器
,该控件可能很难/很容易输入错误。我猜您在示例中意外更改的不仅仅是
存储
(可能是
选择器
标签
)中的打字错误)

您始终可以使用另一个编辑器,如
nano
KUBE\u EDITOR=“nano”kubectl编辑pvc

对于测试,我在GKE集群上使用

$ kubectl get pvc
NAME               STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mongodb-pv-claim   Bound    pvc-802714bf-3922-4b41-b70f-97394f252a00   10Gi       RWO            standard       16s
除了编辑资源,您还可以

kubectl补丁pvc-p'{“spec”:{“resources”:{“requests”:{“storage”:“70Gi”}'

$ kubectl patch pvc mongodb-pv-claim -p '{"spec":{"resources":{"requests":{"storage":"70Gi"}}}}}'
persistentvolumeclaim/mongodb-pv-claim patched
之后,如果您要描述
PVC
,您可以找到如下信息:

Conditions:
  Type                      Status  LastProbeTime                     LastTransitionTime                Reason  Message
  ----                      ------  -----------------                 ------------------                ------  -------
  FileSystemResizePending   True    Mon, 01 Jan 0001 00:00:00 +0000   Fri, 25 Sep 2020 06:40:17 +0000           Waiting for user to (re-)start a pod to finish
 file system resize of volume on node.
之后:

$ kubectl get pvc
NAME               STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mongodb-pv-claim   Bound    pvc-802714bf-3922-4b41-b70f-97394f252a00   70Gi       RWO            standard       8m37s
请记住,根据错误消息,它仅适用于
绑定声明

如果
patch
edit with nano
对您无效,请提供您的
PVC
yaml

编辑


根据OP在回答下面的评论,创建支持此问题的
storageclass
解决了此问题。

“…但它给出了错误…”请在帖子中注明错误。另外,请将资源定义包含为文本。请编辑您的问题并添加更多详细信息,如您的环境、您是如何创建此PVC的、您在更改之前是否已解除了其绑定?由于此问题仍处于关闭状态,我将在评论中提供简短回答<
PVC
中的code>spec是
不可变的
,这意味着您不能在创建后更改此值。在PVC中,您只能更改资源请求<代码>规格在创建**后不可更改,资源除外。绑定声明请求**如果需要更改存储大小,则需要删除此PVC并使用存储创建另一个PVC70Gi@PjoterS它现在是开放的,可能您正在使用动态存储类,因为根据我的搜索和Kubernetes文档,如果存储类是动态的,则只能编辑一个PVC,因此首先我创建了一个动态存储类,然后平滑地编辑了同一个PVC,没有任何错误。@Aftab我使用了GKE,所以我使用了
动态资源调配
。对,然后解决了,Hello@Aftab我也在尝试使用PVC创建POD,它使用的是SC。但是当我启动POD时,它在我的本地Virtualbox集群中给出了以下错误。。。你遇到过这样的问题吗?警告FailedScheduling 81s(x2/82s)默认计划程序0/3节点可用:1个节点具有pod无法容忍的污点{node-role.kubernetes.io/master:},2个节点未找到可绑定的可用持久卷。