Helm удалить релиз и очистить ассоциированное хранилище - PullRequest
1 голос
/ 26 июня 2019

Я устанавливаю релиз helm с помощью

helm install --name my-release .

И удаляю его с помощью

helm delete --purge my-release

Но я обнаружил, что kubernetes не очищает хранилище, связанное с контейнерами этого выпуска.Я установил postgresql, сделал с ним много всего, удалил, и когда я его переустановил, все мои данные были там.Как очистить хранилище с помощью helm delete?

Редактировать: Я использую Postgresql Stable Chart версия 5.3.10

Вот единственное, что у меня есть в моем выпуске

values.yaml

postgresql:
  postgresqlDatabase: test
  postgresqlUsername: test
  postgresqlPassword: test

1 Ответ

2 голосов
/ 26 июня 2019

Посмотрите на файл рулевой диаграммы: https://github.com/helm/charts/blob/master/stable/postgresql/templates/statefulset.yaml

Очевидно, что если вы не укажете значение для .Values.persistence.existingClaim в values.yaml, оно автоматически создаст постоянную заявку на объем.

  • Если для хранилища задано значение .Values.persistence.storageClass, созданный ПВХ будет использовать этот класс для предоставления томов.
  • Если вы установите класс хранения как "-", динамическое предоставлениебудет отключен
  • Если вы ничего не укажете для .Values.persistence.storageClass, для автоматически созданного ПВХ не будет указано поле класса хранения.

Поскольку вы используете значения по умолчанию values.yaml графика, у вас есть третий случай.

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

Проверьте, какой класс хранения вашего кластера:

kubectl get sc 

Класс хранения StorageClass по умолчанию будет отмечен (default).Опишите этот класс хранилища и найдите его Reclaim Policy.

Если для политики восстановления установлено значение Удалить , созданный им pv будет автоматически удален при удалении заявки (в вашем случае, когдадиаграмма удалена).

Если политика восстановления класса хранения по умолчанию не Delete , необходимо создать собственный класс хранения с политикой удаления, а затем использовать его в дальнейшем.

...