“Доступно обновление системы” - знакомое сообщение? Вспомните такое окошко.
Нажал. Подождал. Готово.
В ит инфраструктуре так не работает.
Да, девопсы не любят обновления. Но обновлять надо - уязвимости, новые фичи, прекращение поддержки. Ладно, мы ленивые черти, мы это автоматизируем.
Если мы разрабатываем приложение - настраиваем пайплайн, это наша работа. Дальше проблема разработчиков. Сломают что-то - их боль.
А если мы обновляем наши, инфраструктурные тулзы? Версию k8s, prometheus, grafana, логи и тд. Тут всё сложнее. То, что для разработчиков дев-среда - для нас всё равно прод. Используется. Да, не настолько критично как реальный прод, но всё же.
Давайте возьмём кубер для примера - там зацепим и всё остальное.
Итак, как мы обновляем kubernetes кластер:
- Смотрим changelog
- Проверяем список deprecated и удалённых фич
- Проверяем кластер: какие из них у нас используются
- Находим старые чарты, манифесты, которые на них полагаются - обновляем
- Ищем свежую версию чарта, сравниваем: параметры, шаблоны, values, дефолтные значения, переименования
- Обновляем values.yaml
helm upgrade --atomic(и--reuse-values, по ситуации)- Смотрим: всё установилось, запустилось, ничего не упало
Если новой версии нет, или это самописный чарт - обновляешь сам. Форкаешь, правишь шаблон, или используешь Kustomize.
А обновление самого кластера - получается, в следующий раз. Всё как в жизни.
Итого: мы ещё даже до самого кластера не добрались. Только чарты обновили. И уже голова пухнет.
И всё это - в голове у одного человека. Максимум что вы узнаете на созвоне - “обновляю чарты, до кластера пока не добрался, почти половина готова”.
Пока он не ушёл в отпуск. Или не уволился.
Bus-factor, помним.
Сколько helm-чартов у вас в кластере? И когда последний раз обновляли все?
