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
72
Выживет ли DevOps в эпоху цифровизации?
devopsdaysmoscow
0
65
Цифровой продукт
devopsdaysmoscow
0
29
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
TableauLangchainとは何か?
cielo1985
1
150
伴走から自律へ: 形式知へと導くSREイネーブリングによる プロダクトチームの信頼性オーナーシップ向上 / SRE NEXT 2025
visional_engineering_and_design
3
230
CDK Vibe Coding Fes
tomoki10
1
540
Rethinking Incident Response: Context-Aware AI in Practice
rrreeeyyy
1
410
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
990
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
190
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
180
Contributing to Rails? Start with the Gems You Already Use
yahonda
2
120
OpenTelemetryセマンティック規約の恩恵とMackerel APMにおける活用例 / SRE NEXT 2025
mackerelio
3
1.6k
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
ポストコロナ時代の SaaS におけるコスト削減の意義
izzii
1
280
ゼロからはじめる採用広報
yutadayo
4
1k
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
231
18k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
A Modern Web Designer's Workflow
chriscoyier
695
190k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Building Applications with DynamoDB
mza
95
6.5k
Embracing the Ebb and Flow
colly
86
4.7k
Code Review Best Practice
trishagee
69
19k
Docker and Python
trallard
45
3.5k
Six Lessons from altMBA
skipperchong
28
3.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Gamification - CAS2011
davidbonilla
81
5.4k
For a Future-Friendly Web
brad_frost
179
9.8k
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