gmi*_*ile 6 persistence rename kubernetes google-kubernetes-engine
是否可以重命名PVC?我似乎找不到可能的证据.
我正试图缓解一个"设备没有剩余空间"的问题,我只是偶然发现了.基本上我的计划要求我调整卷的大小,我的服务会保留其数据.
不幸的是,我仍然在GKE上的Kubernetes 1.8.6.它没有PersistentVolumeClaimResize启用准入插件:
因此,我必须手动保存数据.我做了以下计划:
有问题的PVC附加到StatefulSet,因此旧名称和新名称必须匹配(因为StatefulSet期望遵循卷命名约定).
但我不明白如何重命名持久量声明.
你的问题的答案是否定的.没有办法在Kubernetes中更改任何元名称.
但是,有一种方法可以满足您的要求.
您希望通过旧的PersistentVolumeClaim 声明新的更大的PersistentVolume.
可以说,老PVC命名victim和新PVC命名bigger.您想声明bigger由victimPVC 创建的PV .因为您的应用程序已经在使用victimPVC.
按照以下步骤进行操作.
第1步:删除旧PVC victim.
第2步:使PV bigger可用.
$ kubectl get pvc bigger
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
bigger Bound pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi RWO standard 30s
Run Code Online (Sandbox Code Playgroud)
编辑PV pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6以将persistentVolumeReclaimPolicy设置为Retain.因此删除PVC不会删除PV.
现在,删除PVC bigger.
$ kubectl delete pvc bigger
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi RWO Retain Released default/bigger standard 3m
Run Code Online (Sandbox Code Playgroud)
查看状态,PV已发布.
现在,让这个PV可以被另一个PVC声称,我们的victim.
再次编辑PV以删除claimRef
$ kubectl edit pv pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi RWO Retain Available standard 6m
Run Code Online (Sandbox Code Playgroud)
现在PV的状态是可用的.
步骤3:bigger通过victimPVC 声明PV
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: victim
spec:
accessModes:
- ReadWriteOnce
volumeName: pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6
resources:
requests:
storage: 10Gi
Run Code Online (Sandbox Code Playgroud)
使用volumeName pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6
kubectl get pvc,pv
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc/victim Bound pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi RWO standard 9s
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv/pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi RWO Retain Bound default/victim standard 9m
Run Code Online (Sandbox Code Playgroud)
最后:将persistentVolumeReclaimPolicy设置为Delete
这就是你的PVC victim拥有更大PV的方式.
小智 6
使用 Kubernetes 1.11+,您可以通过简单地修改 PVC 的存储请求来执行按需调整大小(https://kubernetes.io/blog/2018/07/12/resizing-persistent-volumes-using-kubernetes/)。
GKE 支持此功能(我自己已经使用过多次),并且非常简单且没有戏剧性。
| 归档时间: |
|
| 查看次数: |
2743 次 |
| 最近记录: |