Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Используем Helm на полную
Search
DevOpsDaysMoscow
December 07, 2019
Technology
54
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Используем Helm на полную
DevOpsDaysMoscow, 07-12-2019, Кирилл Кузнецов
DevOpsDaysMoscow
December 07, 2019
More Decks by DevOpsDaysMoscow
See All by DevOpsDaysMoscow
КАК МЫ ХОДИЛИ В ГОРЫ И УПАЛИ. Как я полюбил индустрию.
devopsdaysmoscow
0
110
Лаборатория для баз данных
devopsdaysmoscow
0
82
Выживет ли DevOps в эпоху цифровизации?
devopsdaysmoscow
0
78
Цифровой продукт
devopsdaysmoscow
0
40
DevOps в Enterprise
devopsdaysmoscow
0
290
Перестаньте использовать crond
devopsdaysmoscow
0
56
Мы все DevOps
devopsdaysmoscow
0
59
Kubernetes против реальности
devopsdaysmoscow
0
230
Управление знаниями в ИТ: при чем тут DevOps и привычки?
devopsdaysmoscow
0
85
Other Decks in Technology
See All in Technology
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
Local CI × GitHub Actions
gogutan
2
190
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
470
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
110
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
6k
Refining Active Record
shugo
0
160
継続的なAIコスト最適化
bgpat
1
340
WasmをRustにする
sansantech
PRO
0
250
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
590
フロントエンドカンファレンス関西2026 - 速すぎるUIに、待ち時間を
teamlab
PRO
0
130
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
460
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
330
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
Leo the Paperboy
mayatellez
10
2.4k
Designing Experiences People Love
moore
143
24k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
The World Runs on Bad Software
bkeepers
PRO
72
12k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
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