Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Используем Helm на полную
Search
DevOpsDaysMoscow
December 07, 2019
Technology
0
40
Используем Helm на полную
DevOpsDaysMoscow, 07-12-2019, Кирилл Кузнецов
DevOpsDaysMoscow
December 07, 2019
Tweet
Share
More Decks by DevOpsDaysMoscow
See All by DevOpsDaysMoscow
КАК МЫ ХОДИЛИ В ГОРЫ И УПАЛИ. Как я полюбил индустрию.
devopsdaysmoscow
0
82
Лаборатория для баз данных
devopsdaysmoscow
0
71
Выживет ли DevOps в эпоху цифровизации?
devopsdaysmoscow
0
65
Цифровой продукт
devopsdaysmoscow
0
28
DevOps в Enterprise
devopsdaysmoscow
0
200
Перестаньте использовать crond
devopsdaysmoscow
0
33
Мы все DevOps
devopsdaysmoscow
0
44
Kubernetes против реальности
devopsdaysmoscow
0
190
Управление знаниями в ИТ: при чем тут DevOps и привычки?
devopsdaysmoscow
0
67
Other Decks in Technology
See All in Technology
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
AIのAIによるAIのための出力評価と改善
chocoyama
2
540
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
2
200
GitHub Copilot の概要
tomokusaba
1
130
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
300
Azure AI Foundryでマルチエージェントワークフロー
seosoft
0
180
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
130
Definition of Done
kawaguti
PRO
6
480
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
330
Кто отправит outbox? Валентин Удальцов, автор канала Пых
lamodatech
0
330
Windows 11 で AWS Documentation MCP Server 接続実践/practical-aws-documentation-mcp-server-connection-on-windows-11
emiki
0
930
CSS、JSをHTMLテンプレートにまとめるフロントエンド戦略
d120145
0
280
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Producing Creativity
orderedlist
PRO
346
40k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
700
Making Projects Easy
brettharned
116
6.3k
A Modern Web Designer's Workflow
chriscoyier
694
190k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Adopting Sorbet at Scale
ufuk
77
9.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
790
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Transcript
Используем Helm на полную! Кир Кузнецов
Что на самом деле нужно разработчику: 1. Деплой 2. Роллбек
3. Управление процессом деплоя 4. Управление переменными приложения 5. Выполнение каких-либо дополнительных сложных действий, например, миграций 2
Что выбрать?
Всегда есть опция “kubectl create/apply” 4
Helm! • У вас есть кластер K8s - вы скорее
всего уже так или иначе используете Helm • Он стал фактическим стандартом в сообществе • А все потому, что Helm официально принят в CNCF в 2018 году 5
Деплой
Давайте сразу что-нибудь задеплоим! 7
Роллбек
Ошиблись - откатываемся 9
Управление процессом деплоя
11 Пример, как работают темплейты
12 Пример, как работают темплейты
Зависимые чарты • В Helm v2 зависимые чарты описываются в
отдельном файле requirements.yaml. • В Helm v3 - допустимо описание прямо в Chart.yaml • Загляните на https://hub.helm.sh 13
Wrapper charts Стоит использовать когда: • зависимостей становится много •
безмерно разрастается один дефолтный values.yaml • появляются пересечения в нейминге values между вашим приложением и сторонними чартами 14
Yaml и Helm Values Рано или поздно вы утонете в
лапше yaml, а точнее helm values вашего проекта Поэтому, следите за глубиной дерева Helm values и разделяйте его на разделы/ветки Опыт говорит, что для чарта приложения удобнее держать глубину дерева меньшую или равную 3 (по возможности) 15
Управление переменными приложения
Pod ожидает их в виде списка Управляются через те же
Helm values, HO Они могут: • меняться • добавляться • удаляться 17
Вот список сохраняется в K8s Secrets 18
Вот так он же передается в описание пода, которое ожидает
списка переменных 19
Запускаем миграции БД
У вас три два пути: 0. Запускать миграцию прямо из
кода приложения... (и молиться) 1. При помощи Init Container + какой-либо lock в БД 2. Helm Hook, который разово запустит миграцию 21
Init Containers • Их просто добавить • У вас уже
есть манифест с подом основного приложения • Не надо ничего придумывать Казалось бы все хорошо… 22
Helm Hooks 23
Helm Hooks • Можно запустить какую-нибудь единственную K8s Job до
или после деплоя • Можно сделать так, чтобы упавшая миграция блокировала новый деплой (например) 24
Обязательно проверяйте статус вашего деплоя У helm клиента есть важные
флаги: • --wait • --atomic • —cleanup-on-fail Если у вас есть возможность - шлите себе оповещения 25
СПАСИБО! Кир Кузнецов evilmartians.com/blog @dragonsmith @agonsmith @evilmartians