微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Kubectl在Kubernetes中调整PVC大小

如何解决使用Kubectl在Kubernetes中调整PVC大小

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

persistentvolumeclaims "myclaim" was not valid:
* spec: Forbidden: spec is iimmutable after creation except resources.requests for bound claims

Kubectl edit的帮助下,如何做到这一点而没有错误

Screen of error

解决方法

我已经在支持Dynamic Provisioning的GKE测试群集上对此进行了验证。正如我在评论中提到的那样,您正在尝试编辑spec的{​​{3}}的immutable部分,除了resources.requests

但是,storage字段路径是spec.resources.requests.storage,我对此进行编辑没有任何问题。当您默认使用kubectl edit时,它使用的是vi editor,这可能很难控制/对于错字很容易。我想您不小心更改了示例中的storage(可能是selectorslabels中的错字)。

您始终可以使用其他编辑器,例如nanoKUBE_EDITOR="nano" kubectl edit pvc <pvc-name>

为了进行测试,我已经在GKE群集上使用了PersistentVolumeClaim

$ 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

您也可以This YAML来代替editing资源。

kubectl patch pvc <pvc-name> -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

请记住,根据错误消息,它仅对bound claims起作用。

如果patchedit with nano对您不起作用,请提供您的PVC字母。

编辑

根据OP在以下答案中的评论,创建支持patch resourcesstorageclass解决了此问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。