Рубрики
Uncategorized

Изменение размера постоянных томов в Кубейнетах, как магия

Как расширить громкость диска в Куберане. Теги с Куберовщиками, дежоптом, гк.

Расширение диска Kubernetes

Таким образом, постоянный том вашей рабочей нагрузки почти полностью. Как вы можете расширить это? С Kubernetes 1.11 и выше Теперь теперь можно легко сделать, просто обновляя спецификацию постоянного тома.

Мой пример в этом посте проверяется в двигателе Kubernetes Google.

Давайте начнем!

Включение объема расширения в классе хранения

Чтобы включить функцию размера на диске, убедитесь, что класс хранения, который настроен на постоянное использование томов на рабочей нагрузке с помощью allowvolumeexpansion: правда Отказ

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: standard
parameters:
  type: pd-standard
provisioner: kubernetes.io/gce-pd
allowVolumeExpansion: true # ensure that this is true

Боковая заметка для рабочих нагрузок в области состояния

Если вы хотите изменить размер диска для состояния с помощью настроенных VolumeclaimTemplates Как следующее,

  volumeClaimTemplates:
  - metadata:
      name: postgresql-storage
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: standard

Вам придется только изменить утверждение постоянного тома, который он предоставил.

Изменение размера претензии постоянного тома

Найти постоянную тому, чтобы изменить размер.

kubectl get pvc -l app=postgresql

Допустим, вы хотите обновить PostgreSQL-Storage-PostgreSQL-02-1 от 1gi к 10GI.

NAME                                 STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
postgresql-storage-postgresql-01-0   Bound    pvc-613c74c3-66b5-11e9-a602-42010a8400c0   10Gi       RWO            standard       6m12s
postgresql-storage-postgresql-01-1   Bound    pvc-88f897b1-60d4-11e9-a602-42010a8400c0   5Gi        RWO            standard       7d11h
postgresql-storage-postgresql-02-0   Bound    pvc-727c167c-6089-11e9-a602-42010a8400c0   10Gi       RWO            standard       7d20h
postgresql-storage-postgresql-02-1   Bound    pvc-80421dab-6089-11e9-a602-42010a8400c0   1Gi        RWO            standard       7d20h
kubectl edit pvc postgresql-storage-postgresql-02-1

Из вашего текстового редактора, изменить 1gi к 10GI.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: "yes"
    pv.kubernetes.io/bound-by-controller: "yes"
    volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/gce-pd
  creationTimestamp: "2019-04-16T20:52:09Z"
  finalizers:
  - kubernetes.io/pvc-protection
  labels:
    app: postgresql
  name: postgresql-storage-postgresql-02-1
  namespace: default
  resourceVersion: "29892621"
  selfLink: /api/v1/namespaces/default/persistentvolumeclaims/postgresql-storage-postgresql-02-1
  uid: 80421dab-6089-11e9-a602-42010a8400c0
spec:
  accessModes:
  - ReadWriteOnce
  dataSource: null
  resources:
    requests:
      storage: 1Gi # change this to 10Gi
  storageClassName: standard
  volumeName: pvc-80421dab-6089-11e9-a602-42010a8400c0
status:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi # change this to 10Gi
  phase: Bound

После успешного изменения претензии постоянного тома соблюдайте его статус.

kubectl get pvc postgresql-storage-postgresql-02-1 -o yaml

Это должно быть примером выходов. Соблюдайте статус в самом конце YAML.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: "yes"
    pv.kubernetes.io/bound-by-controller: "yes"
    volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/gce-pd
  creationTimestamp: "2019-04-16T20:52:09Z"
  finalizers:
  - kubernetes.io/pvc-protection
  labels:
    app: postgresql
  name: postgresql-storage-postgresql-02-1
  namespace: default
  resourceVersion: "33540657"
  selfLink: /api/v1/namespaces/default/persistentvolumeclaims/postgresql-storage-postgresql-02-1
  uid: 80421dab-6089-11e9-a602-42010a8400c0
spec:
  accessModes:
  - ReadWriteOnce
  dataSource: null
  resources:
    requests:
      storage: 10Gi
  storageClassName: standard
  volumeName: pvc-80421dab-6089-11e9-a602-42010a8400c0
status:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2019-04-24T17:30:51Z"
    message: Waiting for user to (re-)start a pod to finish file system resize of
      volume on node.
    status: "True"
    type: FileSystemResizePending
  phase: Bound

Перезапустите стручок

Следующим шагом является перезагрузка POD, как рекомендовано Kubernetes.

kubectl delete pod postgresql-02-1

Тогда подождите, пока POD снова не начнет работать.

Соблюдайте изменения

После успешного перезапуска POD проверьте состояние претензии постоянного тома снова, и вы должны увидеть, что хранение было обновлено.

kubectl get pvc postgresql-storage-postgresql-02-1 -o yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: "yes"
    pv.kubernetes.io/bound-by-controller: "yes"
    volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/gce-pd
  creationTimestamp: "2019-04-16T20:52:09Z"
  finalizers:
  - kubernetes.io/pvc-protection
  labels:
    app: postgresql
  name: postgresql-storage-postgresql-02-1
  namespace: default
  resourceVersion: "33541444"
  selfLink: /api/v1/namespaces/default/persistentvolumeclaims/postgresql-storage-postgresql-02-1
  uid: 80421dab-6089-11e9-a602-42010a8400c0
spec:
  accessModes:
  - ReadWriteOnce
  dataSource: null
  resources:
    requests:
      storage: 10Gi
  storageClassName: standard
  volumeName: pvc-80421dab-6089-11e9-a602-42010a8400c0
status:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 10Gi
  phase: Bound

Сделать kubectl Exec Для POD и убедитесь, что диск был изменен!

Беги DF -H Отказ

# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay         5.7G  4.7G  1.1G  83% /
tmpfs           1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1       5.7G  4.7G  1.1G  83% /etc/hosts
shm              64M     0   64M   0% /dev/shm
/dev/sdc        9.9G  1.3G  8.6G  13% /var/lib/postgresql
tmpfs           1.9G   12K  1.9G   1% /run/secrets/kubernetes.io/serviceaccount
tmpfs           1.9G     0  1.9G   0% /sys/firmware

Магия!

Оригинал: «https://dev.to/bzon/resizing-persistent-volumes-in-kubernetes-like-magic-4f96»