2016-10-31 4 views
8

Я использую развертывание MySQL на Kubernetes, однако кажется, что моего выделенного пространства было недостаточно, изначально я добавил постоянный том 50GB, и теперь я хотел бы расширить его до 100GB.Можно изменить размер постоянных томов?

Я уже видел, что постоянное требование объема является неизменным после создания, но могу ли я как-то просто изменить размер постоянной громкости, а затем воссоздать свое требование?

ответ

9

Нет, Kubernetes не поддерживает автоматическое изменение размера тома.

Изменение размера диска - это полностью ручной процесс на данный момент.

Предполагая, что вы создали объект PV Kubernetes с заданной емкостью, а PV привязан к ПВХ, а затем подключен/подключен/подключен к узлу для использования стручкой. Если вы увеличите размер тома, стручки продолжат использовать диск без проблем, однако у них не будет доступа к дополнительному пространству.

Чтобы включить дополнительное пространство на томе, вы должны вручную изменить размер разделов. Вы можете сделать это, выполнив инструкции here. Вам нужно сначала удалить модули, ссылающиеся на том, чтобы дождаться его отсоединения, чем вручную подключить/смонтировать том к некоторому экземпляру виртуальной машины, к которому у вас есть доступ, и выполнить необходимые шаги для его изменения.

Открытая проблема #35941 для отслеживания запроса функции.

+0

но 'стойкий объем claim' и' persisten volume' уже указать размер, я должен создать те, без указания размера? это возможно? спасибо за ваш ответ – perrohunter

+2

PV/PVC используется для обнаружения хранилища. ПВХ создается с минимальными требованиями к хранению, он привязывается к доступному (несвязаному) PV, который соответствует этим минимальным требованиям. Объект PV является «представлением» реального хранилища. Для этого требуется определить способность. Как только ПВХ/ПВ связаны, пропускная способность либо не имеет большого значения, так как ПВХ выполнен. Когда на ПВХ ссылается стручок, блок использует информацию только в объекте PV, который требуется для установки этого тома (он игнорирует значения емкости). –

+0

@SaadAli не существует способа ограничить пространство для хранения, доступное для приложения? – Jonathan

1

С точки зрения ПВХ/PV «изменения размера», который до сих пор не поддерживается в K8S, хотя я считаю, что это потенциально может прийти в 1,9

Это можно достигнуть того же конечного результата, имея дело с ПВХ/PV и (например, GCE PD, хотя ..

Например, у меня было развертывание gitlab с ПВХ и динамически подготовленным PV через ресурс StorageClass. Вот шаги, которые я пробежал:

  1. Возьмите снимок PD (при условии, что вы заботитесь о данных)
  2. Убедитесь, что ReclaimPolicy ФВ является «удерживать», патч, если это необходимо, как описано здесь: https://kubernetes.io/docs/tasks/administer-cluster/change-pv-reclaim-policy/
  3. kubectl describe pv <name-of-pv> (полезно при создании PV манифеста позже)
  4. Удаление развертывания/стручок (вероятно, не является существенным, но, кажется, чище)
  5. Удалить из ПВХ и PV
  6. Обеспечение PD признан не используется ничем (например, google console, страница compute/disks)
  7. Изменение размера PD с облачным провайдером (например, с помощью GCE это можно сделать на более раннем этапе, даже если диск используется)
  8. Создайте манифест манифеста k8s PersistentVolume (это ранее выполнялись динамически с использованием ресурса StorageClass). В спецификации PersistentVolume yaml я определил "gcePersistentDisk: pdName: <name-of-pd>", а также другие детали, которые я захватил на шаге 3. убедитесь, что вы обновили spec.capacity.хранение в новом качестве вы хотите ФЭ иметь(хотя и не обязательно, и не имеет никакого эффекта здесь, вы можете обновить емкость для хранения/значение в манифесте ПВХ, для потомков)
  9. kubectl apply (или эквивалент), чтобы воссоздать ваше развертывание/pod, PVC и PV

примечание: некоторые шаги могут не иметь существенного значения, например, удаление некоторых существующих ресурсов развертывания/pod .., хотя я лично предпочитаю их удалять, Я знаю, что ReclaimPolicy сохраняется, и у меня есть моментальный снимок.

0

Да, это может быть, после версии 1.8

4

Можно в Kubernetes 1.9 (альфа 1.8) для некоторых типов томов: gcePersistentDisk, awsElasticBlockStore, шлаковых, GlusterFS, RBD

Это требует включения PersistentVolumeClaimResize классы подключений к подключению и хранения, чье поле allowVolumeExpansion установлено в значение true.

См официальных документов на https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims

Смежные вопросы