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

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

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

DevOpsDaysMoscow, 07-12-2019, Кирилл Кузнецов

DevOpsDaysMoscow

December 07, 2019
Tweet

More Decks by DevOpsDaysMoscow

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