Я слышал, что в более поздних версиях Kubernetes (1.9 и новее, если я не ошибаюсь; у меня 1.10) можно расширять PersistentVolume до тех пор, пока allowVolumeExpansion: true
устанавливается в конфигурации StorageClass.
В моем случае на GCP StorageClass, который использует мой PVC, не имеет этой строки, и я тоже не могу ее добавить.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
storageclass.beta.kubernetes.io/is-default-class: "true"
creationTimestamp: 2018-05-30T17:07:33Z
labels:
addonmanager.kubernetes.io/mode: EnsureExists
kubernetes.io/cluster-service: "true"
name: standard
resourceVersion: "8741704"
selfLink: /apis/storage.k8s.io/v1/storageclasses/standard
uid: f1bd0421-642b-11e8-bb11-42010a9a00b5
parameters:
type: pd-standard
provisioner: kubernetes.io/gce-pd
reclaimPolicy: Delete
volumeBindingMode: Immediate
Итак, я хочу увеличить PV и соответствующий ему PVC с 8Gi до 100Gi. Как лучше всего это сделать? Есть ли способ сделать это при сохранении данных или необходимо удалить текущий PV перед созданием нового?
Вот PV YAML:
apiVersion: v1
kind: PersistentVolume
metadata:
annotations:
kubernetes.io/createdby: gce-pd-dynamic-provisioner
pv.kubernetes.io/bound-by-controller: "yes"
pv.kubernetes.io/provisioned-by: kubernetes.io/gce-pd
creationTimestamp: 2018-05-31T10:30:39Z
finalizers:
- kubernetes.io/pv-protection
labels:
failure-domain.beta.kubernetes.io/region: europe-west2
failure-domain.beta.kubernetes.io/zone: europe-west2-c
name: pvc-a70ca000-64bd-11e8-bb11-42010a9a00b5
resourceVersion: "8728415"
selfLink: /api/v1/persistentvolumes/pvc-a70ca000-64bd-11e8-bb11-42010a9a00b5
uid: a9e8c071-64bd-11e8-bb11-42010a9a00b5
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 8Gi
claimRef:
apiVersion: v1
kind: PersistentVolumeClaim
name: production-postgres
namespace: neserver-6540663
resourceVersion: "85487"
uid: a70ca000-64bd-11e8-bb11-42010a9a00b5
gcePersistentDisk:
fsType: ext4
pdName: gke-cluster-1-320626e3-pvc-a70ca000-64bd-11e8-bb11-42010a9a00b5
persistentVolumeReclaimPolicy: Delete
storageClassName: standard
status:
phase: Bound
К сожалению, эта функция пока не поддерживается в GKE. Вы можете открыть запрос функции, чтобы включить эту функцию в будущих версиях GKE, используя Общедоступный трекер проблем