Разное

Helm, StatefulSet и cascade=orphan

13.09.2022

Иногда необходимо удалить/пересоздать полностью с kubernetes стейтфулсет, но при этом оставить данные в pvc и рабочие pod’ы. К примеру, у нас есть postgres в кубере, где-нибудь на стейджингах, и заезжает новый чарт с другими тегами. Стейтфулы нельзя пропатчить и Helm получает в ответ ошибку:

Error: helm upgrade have failed: UPGRADE FAILED: error processing rollout phase stage: error applying resources: cannot patch "postgresql" with kind StatefulSet: StatefulSet.apps "postgresql" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden

Что делать? Тут вариант либо руками править теги, либо, в данном случае, грохнуть StatefulSet посгри с сохранением рабочих подов и pvc:

kubectl -n HERE_YOUR_NS delete sts postgresql --cascade=orphan

После чего раскатываем заново чарт и он подцепляет существующие поды и pvc которые остались благодаря флагу cascade=orphan.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *