Aft*_*tab 3 kubernetes persistent-volume-claims
最近我试图在 的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
Run Code Online (Sandbox Code Playgroud)
如何在Kubectl edit.
我已经在支持Dynamic Provisioning 的GKE 测试集群上验证了这一点。正如我在评论中提到,你想编辑spec的部分PersistentVolumeClaim是immutable,除了resources.requests。
但是,storage字段路径是spec.resources.requests.storage,我对此进行编辑没有任何问题。当您使用kubectl edit默认值时,它使用的vi editor控件可能很难/很容易打错字。我猜你不小心改变了不仅仅是storage在你的例子中(可能是selectors, 中的错字labels)。
您始终可以使用其他编辑器,例如nano.
KUBE_EDITOR="nano" kubectl edit pvc <pvc-name>
对于测试,我在 GKE 集群上使用了这个 YAML。
$ 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
Run Code Online (Sandbox Code Playgroud)
除了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
Run Code Online (Sandbox Code Playgroud)
之后,如果您进行描述,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.
Run Code Online (Sandbox Code Playgroud)
过了一阵子:
$ 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
Run Code Online (Sandbox Code Playgroud)
请记住,根据错误消息,它仅适用于bound claims.
如果patch或edit with nano不适合您,请提供您的PVCyaml。
编辑
根据 OP 在答案下方的评论,创建storageclass支持动态配置的解决方案解决了此问题。
| 归档时间: |
|
| 查看次数: |
2841 次 |
| 最近记录: |