Вопрос или проблема
Сначала мы установили cert-manager с использованием статических манифестов. Теперь нам нужно настроить параметры (тайм-аут вебхука, см. digitalocean/clusterlint#167), поэтому я думаю, что лучшим вариантом будет миграция на установку через Helm, но я не уверен, как лучше это сделать, и буду очень благодарен за помощь.
Я прочитал инструкции по удалению, но не хочу удалять сертификаты или (кластерные/) выдающие центры. Могу ли я пропустить этот шаг удаления, так как знаю, что вскоре переустановлю с помощью Helm, или мне нужно следовать другому процессу?
Любая помощь была бы замечательной. Спасибо 🙏
Это может быть не идеально по какой-то причине, о которой я еще не осведомлен, но, похоже, это идеально сработало для меня…
- Обновите до последней версии, например,
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/vX.Y.Z/cert-manager.yaml
- Удалите с помощью kubectl, например,
kubectl delete -f https://github.com/cert-manager/cert-manager/releases/download/vX.Y.Z/cert-manager.yaml
(не очищайте ресурсы cert-manager сначала) - Переустановите с помощью Helm (смотрите здесь)
Если возникнут какие-либо проблемы, я дам вам знать, но, похоже, это работает нормально и уже сделано в продакшене.
Ответ или решение
Для миграции установки cert-manager из статических манифестов в Helm, не теряя существующих сертификатов, вам нужно следовать определённым шагам. Ниже я нахожу несколько рекомендаций, которые помогут вам осуществить этот переход без потери данных.
Пошаговая инструкция:
-
Обновите cert-manager до последней версии:
Сначала убедитесь, что ваше текущее развертывание cert-manager обновлено до последней стабильной версии. Это важно, чтобы избежать проблем совместимости при удалении и повторной установке. Вы можете сделать это, выполнив команду:kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/vX.Y.Z/cert-manager.yaml
Замените
vX.Y.Z
на актуальную версию. -
Удалите установку cert-manager:
После обновления можно продолжать с удалением. Однако, важно не очищать связанные ресурсы cert-manager (такие как сертификаты и issuers) перед удалением. Используйте следующую команду для безопасного удаления:kubectl delete -f https://github.com/cert-manager/cert-manager/releases/download/vX.Y.Z/cert-manager.yaml
Это приведет к удалению только компонентов cert-manager и оставит все существующие сертификаты и issuers нетронутыми.
-
Установите cert-manager с помощью Helm:
Теперь вы готовы установить cert-manager через Helm. Убедитесь, что у вас настроен Helm и добавлен репозиторий cert-manager:helm repo add jetstack https://charts.jetstack.io helm repo update
Затем установите cert-manager, указав необходимые настройки, такие как тайм-аут вебхука:
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set extraArgs={--webhook-timeout=30s}
Вы можете настроить дополнительные параметры в зависимости от ваших требований.
Дополнительные рекомендации:
-
Создайте резервные копии: Перед любыми действиями рекомендуется создавать резервные копии ваших ресурсов Kubernetes, особенно если они критически важны для вашего приложения.
-
Мониторинг: После миграции полезно следить за логами cert-manager и состоянием ваших сертификатов и issuers, чтобы убедиться, что всё работает корректно.
-
Тестирование в тестовом окружении: Если это возможно, сначала протестируйте процесс миграции в тестовом окружении, прежде чем проводить изменения в продакшн.
Следуя этим шагам, вы сможете успешно переключить установку cert-manager с статических манифестов на Helm без потери сертификатов и issuers. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью!