問(wèn)題
目的:初始配置pv和pvc的容量小了,想要進(jìn)行動(dòng)態(tài)擴(kuò)容
修改pvc配置,其它無(wú)操作
kubectl edit PersistentVolumeClaim harbor-harbor-jobservice -n harbor
修改spec. resources.requests.storage: 4Gi -> 8G
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
field.cattle.io/creatorId: u-ou7462szpa
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/rbd
creationTimestamp: 2021-07-08T08:30:48Z
finalizers:
- kubernetes.io/pvc-protection
labels:
cattle.io/creator: norman
name: harbor-harbor-jobservice
namespace: harbor
resourceVersion: "161333541"
selfLink: /api/v1/namespaces/harbor/persistentvolumeclaims/harbor-harbor-jobservice
uid: cc1dd2bf-dfc6-11eb-b173-eeeeeeeeeeee
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
storageClassName: ceph
volumeMode: Filesystem
volumeName: pvc-cc1dd2bf-dfc6-11eb-b173-eeeeeeeeeeee
pvc報(bào)錯(cuò)如下,一致報(bào)錯(cuò)力惯,循環(huán)報(bào)錯(cuò)
(combined from similar events): error expanding volume "harbor/harbor-harbor-jobservice" of plugin
"kubernetes.io/rbd": rbd info failed, error: parse rbd info output failed: 2021-07-16 14:52:20.796586
7f4b275c2100 -1 did not load config file, using default settings. 2021-07-16 14:52:20.951187 7f4b275c2100
-1 auth: unable to find a keyring on
/etc/ceph/ceph.client.admin.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin: (2) No
such file or directory {"name":"kubernetes-dynamic-pvc-ccf922de-dfc6-11eb-ad4e-
eeeeeeeeeeee","size":2147483648,"objects":512,"order":22,"object_size":4194304,"block_name_prefix":"rbd_
data.18f26a6b8b4567","format":2,"features":["layering"],"flags":[]}, invalid character '-' after top-level value
解決
1趾唱、kubectl edit storageclass ceph
確保allowVolumeExpansion: true
2、確定文件系統(tǒng)類型,只有卷中包含的文件系統(tǒng)是 XFS夸溶、Ext3 或者 Ext4 時(shí),你才可以重設(shè)卷的大小
3缝裁、檢查卷使用模式:當(dāng)卷中包含文件系統(tǒng)時(shí),只有在 Pod 使用 ReadWrite 模式來(lái)使用 PVC 申領(lǐng)的情況下才能重設(shè)其文件系統(tǒng)的大小捷绑。
4韩脑、上述修改完pvc配置,與之對(duì)應(yīng)的pv配置也要相應(yīng)修改
5粹污、重啟pod:文件系統(tǒng)擴(kuò)充的操作或者是在 Pod 啟動(dòng)期間完成,或者在下層文件系統(tǒng)支持在線 擴(kuò)充的前提下在 Pod 運(yùn)行期間完成进苍。
補(bǔ)充:
說(shuō)明: Kubernetes 從 1.15 版本開(kāi)始將調(diào)整使用中 PVC 申領(lǐng)大小這一能力作為 Beta 特性支持;該特性在 1.11 版本以來(lái)處于 Alpha 階段鸭叙。
ExpandInUsePersistentVolumes
特性必須被啟用觉啊;在很多集群上,與此類似的 Beta 階段的特性是自動(dòng)啟用的沈贝。
在這種情況下,你不需要?jiǎng)h除和重建正在使用某現(xiàn)有 PVC 的 Pod 或 Deployment。 所有使用中的 PVC 在其文件系統(tǒng)被擴(kuò)充之后市俊,立即可供其 Pod 使用。 此功能特性對(duì)于沒(méi)有被 Pod 或 Deployment 使用的 PVC 而言沒(méi)有效果摆昧。 你必須在執(zhí)行擴(kuò)展操作之前創(chuàng)建一個(gè)使用該 PVC 的 Pod蜒程。
本集群版本 Server GitVersion:"v1.14.6",無(wú)法使用上述特性
處理擴(kuò)充卷過(guò)程中的失敗昭躺,重新使用舊的pv對(duì)象
如果擴(kuò)充下層存儲(chǔ)的操作失敗,集群管理員可以手動(dòng)地恢復(fù) PVC 申領(lǐng)的狀態(tài)并 取消重設(shè)大小的請(qǐng)求领炫。否則,在沒(méi)有管理員干預(yù)的情況下似舵,控制器會(huì)反復(fù)重試 重設(shè)大小的操作葱峡。
- 將綁定到 PVC 申領(lǐng)的 PV 卷標(biāo)記為
Retain
回收策略; - 刪除 PVC 對(duì)象砰奕。由于 PV 的回收策略為
Retain
,我們不會(huì)在重建 PVC 時(shí)丟失數(shù)據(jù)仅淑。 - 刪除 PV 規(guī)約中的
claimRef
項(xiàng)胸哥,這樣新的 PVC 可以綁定到該卷。 這一操作會(huì)使得 PV 卷變?yōu)?"可用(Available)"烘嘱。 - 使用小于等于PV 卷大小的尺寸重建 PVC,設(shè)置 PVC 的
volumeName
字段為 PV 卷的名稱蝇庭。 這一操作將把新的 PVC 對(duì)象綁定到現(xiàn)有的 PV 卷。 - 不要忘記恢復(fù) PV 卷上設(shè)置的回收策略盗棵。