Difference between revisions of "Kubernetes PVC expansion: kubectl patch pvc"
Jump to navigation
Jump to search
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | Expand your pvc size. | ||
+ | |||
1) List your PVCs: | 1) List your PVCs: | ||
Line 11: | Line 13: | ||
3) Request new size | 3) Request new size | ||
− | * <code>kubectl -n [[your-namespace]] [[kubectl patch|patch]] pvc your-pvc-name -p '{"spec":{"resources":{"requests":{"storage":"16Gi" | + | * <code>kubectl -n [[your-namespace]] [[kubectl patch|patch]] [[pvc]] your-pvc-name -p '{"spec":{"resources":{"requests":{"storage":"16Gi"}}}}'</code> |
4) Verify it | 4) Verify it | ||
+ | [[kubectl get pvc]] YOURPVC | ||
+ | |||
+ | |||
+ | |||
+ | == Outputs == | ||
+ | kubectl -n yournamespace patch pvc yourstoragename -p '{"spec":{"resources":{"requests": | ||
+ | {"storage":"1Gi"}}}}' | ||
+ | The PersistentVolumeClaim "yourstoragename" is invalid: | ||
+ | * spec: Forbidden: spec is immutable after creation except resources.requests for bound | ||
+ | claims | ||
+ | core.PersistentVolumeClaimSpec{ | ||
+ | AccessModes: {"ReadWriteOnce"}, | ||
+ | Selector: nil, | ||
+ | Resources: core.ResourceRequirements{ | ||
+ | Limits: nil, | ||
+ | - Requests: core.ResourceList{ | ||
+ | - s"storage": {i: resource.int64Amount{value: 123456}, s: "1Gi", | ||
+ | Format: "BinarySI"}, | ||
+ | - }, | ||
+ | + Requests: core.ResourceList{ | ||
+ | + s"storage": {i: resource.int64Amount{value: 123456}, s: "5Gi", | ||
+ | Format: "BinarySI"}, | ||
+ | + }, | ||
+ | }, | ||
+ | VolumeName: "", | ||
+ | StorageClassName: &"yourclass", | ||
+ | ... // 3 identical fields | ||
+ | } | ||
+ | |||
+ | * spec.resources.requests.storage: Forbidden: field can not be less than previous value | ||
== Related == | == Related == | ||
− | * <code>[[kubectl patch]]</code> | + | * <code>[[kubectl get storageclass]]</code> |
+ | * <code>[[kubectl patch pvc]]</code> | ||
* <code>FileSystemResizeSuccessful [[MountVolume.NodeExpandVolume]] succeeded for volume "pvc-678509b5-158b-11e9-8abc-1234567890"</code> | * <code>FileSystemResizeSuccessful [[MountVolume.NodeExpandVolume]] succeeded for volume "pvc-678509b5-158b-11e9-8abc-1234567890"</code> | ||
+ | * <code>[[The PersistentVolumeClaim XXX is invalid]]</code> | ||
== Activities == | == Activities == |
Latest revision as of 12:56, 15 January 2024
Expand your pvc size.
1) List your PVCs:
kubectl get pvc -A
NAMESPACE NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE dev elasticsearch-master-elasticsearch-master-0 Bound pvc-25c6e973-8fc4-463b-9288-123456678903 30Gi RWO standard 2y234d
2) Review your StorageClass has AllowVolumeExpansion configured to true.
kubectl describe sc standard | grep AllowVolumeExpansion AllowVolumeExpansion: True
3) Request new size
kubectl -n your-namespace patch pvc your-pvc-name -p '{"spec":{"resources":{"requests":{"storage":"16Gi"}}}}'
4) Verify it
kubectl get pvc YOURPVC
Contents
Outputs[edit]
kubectl -n yournamespace patch pvc yourstoragename -p '{"spec":{"resources":{"requests": {"storage":"1Gi"}}}}' The PersistentVolumeClaim "yourstoragename" is invalid: * spec: Forbidden: spec is immutable after creation except resources.requests for bound claims core.PersistentVolumeClaimSpec{ AccessModes: {"ReadWriteOnce"}, Selector: nil, Resources: core.ResourceRequirements{ Limits: nil, - Requests: core.ResourceList{ - s"storage": {i: resource.int64Amount{value: 123456}, s: "1Gi", Format: "BinarySI"}, - }, + Requests: core.ResourceList{ + s"storage": {i: resource.int64Amount{value: 123456}, s: "5Gi", Format: "BinarySI"}, + }, }, VolumeName: "", StorageClassName: &"yourclass", ... // 3 identical fields } * spec.resources.requests.storage: Forbidden: field can not be less than previous value
Related[edit]
kubectl get storageclass
kubectl patch pvc
FileSystemResizeSuccessful MountVolume.NodeExpandVolume succeeded for volume "pvc-678509b5-158b-11e9-8abc-1234567890"
The PersistentVolumeClaim XXX is invalid
Activities[edit]
- Read https://www.gooksu.com/2022/08/how-to-increase-space-for-your-elasticsearch-instances-in-k8s-on-eck/
- Read https://www.percona.com/blog/percona-operator-volume-expansion-without-downtime/
See also[edit]
- Kubernetes Persistent Volume Claim (PVC) (
kind: PersistentVolumeClaim
), Kubernetes Persistent volumes (PV)(kind: PersistentVolume)
,kubectl describe pvc, kubectl get pvc
, ClaimLost, ProvisioningSucceeded, PV access control - Kubernetes storage, storage classes, PersistentVolume (PV), PVC, CSI,
kind: StorageClass, kind: PersistentVolumeClaim, kind: PersistentVolume
,kubectl [ get | describe | edit ] pvc
,volumeClaimTemplates:
,kubectl patch pv
,FailedMount
, Volume Expansion, Volume Cloning, snapshots, ExtraVolumes, NotTriggerScaleUp,volumePVCDataSource, AllowVolumeExpansion
, EKS storage, provisioner, Storage Capacity Tracking,VolumeBinding, VolumeClaimTemplate, storage.k8s.io
, CKA Storage, DoKC, EmptyDir, Volume populators,storageclass.kubernetes.io
Advertising: