Обновление томов в сервисах YTsaurus
В этой статье описано, как изменить настройки томов для сервисов YTsaurus, запущенных в Kubernetes.
Важные особенности
При обновлении томов учитывайте следующее:
-
Оператор не применяет обновления автоматически. Он не отслеживает изменения в конфигурации томов, поэтому изменение спецификации ресурса само по себе не запустит обновление.
-
Persistent Volume Claims (PVC) привязаны к подам. Даже если удалить поды или StatefulSet, старые PVC останутся на месте. Они помешают применить новые настройки томов.
Важно
Описанные ниже действия приведут к потере данных на обновляемых томах, так как тома будут пересозданы заново. Будьте осторожны.
Порядок действий
Чтобы обновить настройки томов, выполните следующие шаги:
Шаг 1. Отключите оператор
В спецификации ресурса YTsaurus установите значение false для поля isManaged. Так вы остановите оператор, чтобы он не мешал вносить изменения вручную.
spec:
isManaged: false
Примените это изменение в кластере.
Шаг 2. Удалите StatefulSet
Удалите StatefulSet того сервиса, тома которого вы обновляете:
kubectl delete statefulset <statefulset-name> -n <namespace>
Шаг 3. Удалите Persistent Volume Claims
Удалите PVC, связанные с подами:
kubectl delete pvc <pvc-name> -n <namespace>
Если у StatefulSet несколько реплик, удалите PVC для каждой из них. Найти нужные PVC можно командой:
kubectl get pvc -n <namespace>
Шаг 4. Включите оператор
Верните значение true для поля isManaged в спецификации ресурса YTsaurus:
spec:
isManaged: true
Примените изменение. Теперь оператор пересоздаст StatefulSet и PVC уже с новыми настройками томов.
Пример: увеличение места для логов планировщика
Частая задача при работе с томами — увеличить место под логи. Допустим, нужно расширить хранилище логов для планировщиков с 10 ГБ до 50 ГБ.
- Укажите новый размер тома в спецификации ресурса YTsaurus:
spec:
schedulers:
volumeClaimTemplates:
- spec:
resources:
requests:
storage: 50Gi # увеличили с 10Gi
- Выполните описанные выше шаги: установите
isManaged: false, удалите StatefulSet и PVC, затем вернитеisManaged: true.
Важно
В результате этой операции текущие логи будут потеряны, так как старые PVC удаляются и создаются новые. Если логи нужно сохранить, сделайте резервную копию до начала обновления.