Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Используем Helm на полную

Используем Helm на полную

Почему в 2020 году Helm все еще является полезным, удобным и очевидным кандидатом на роль инструмента для деплоя вашего приложения.

Avatar for Kirill Kuznetsov

Kirill Kuznetsov

December 07, 2019
Tweet

More Decks by Kirill Kuznetsov

Other Decks in Technology

Transcript

  1. Что на самом деле нужно разработчику: 1. Деплой 2. Роллбек

    3. Управление процессом деплоя 4. Управление переменными приложения 5. Выполнение каких-либо дополнительных сложных действий, например, миграций 2
  2. Helm! • У вас есть кластер K8s – вы, скорее

    всего, уже так или иначе используете Helm • Он стал фактическим стандартом в сообществе • А все потому, что Helm официально принят в CNCF в 2018 году 5
  3. Зависимые чарты • В Helm v2 зависимые чарты описываются в

    отдельном файле requirements.yaml. • В Helm v3 – допустимо описание прямо в Chart.yaml • Загляните на https://hub.helm.sh 13
  4. Wrapper charts Стоит использовать, когда: • зависимостей становится много •

    безмерно разрастается один дефолтный values.yaml • появляются пересечения в нейминге values между вашим приложением и сторонними чартами 14
  5. Yaml и Helm Values Рано или поздно вы утонете в

    лапше yaml, а точнее, helm values вашего проекта Поэтому следите за глубиной дерева Helm values и разделяйте его на разделы/ветки Опыт говорит, что для чарта приложения удобнее держать глубину дерева меньшую или равную 3 (по возможности) 15
  6. Pod ожидает их в виде списка Управляются через те же

    Helm values, HO Они могут: • меняться • добавляться • удаляться 17
  7. У вас три два пути: 0. Запускать миграцию прямо из

    кода приложения... (и молиться) 1. При помощи Init Container + какой-либо lock в БД 2. Helm Hook, который разово запустит миграцию 21
  8. Init Containers • Их просто добавить • У вас уже

    есть манифест с подом основного приложения • Не надо ничего придумывать Казалось бы, все хорошо… 22
  9. Helm Hooks • Можно запустить какую-нибудь единственную K8s Job до

    или после деплоя • Можно сделать так, чтобы упавшая миграция блокировала новый деплой (например) 24
  10. Обязательно проверяйте статус вашего деплоя У helm клиента есть важные

    флаги: • --wait • --atomic • --cleanup-on-fail Если у вас есть возможность – шлите себе оповещения 25