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
42
Используем Helm на полную
DevOpsDaysMoscow, 07-12-2019, Кирилл Кузнецов
DevOpsDaysMoscow
December 07, 2019
Tweet
Share
More Decks by DevOpsDaysMoscow
See All by DevOpsDaysMoscow
КАК МЫ ХОДИЛИ В ГОРЫ И УПАЛИ. Как я полюбил индустрию.
devopsdaysmoscow
0
84
Лаборатория для баз данных
devopsdaysmoscow
0
73
Выживет ли DevOps в эпоху цифровизации?
devopsdaysmoscow
0
67
Цифровой продукт
devopsdaysmoscow
0
30
DevOps в Enterprise
devopsdaysmoscow
0
220
Перестаньте использовать crond
devopsdaysmoscow
0
39
Мы все DevOps
devopsdaysmoscow
0
46
Kubernetes против реальности
devopsdaysmoscow
0
200
Управление знаниями в ИТ: при чем тут DevOps и привычки?
devopsdaysmoscow
0
69
Other Decks in Technology
See All in Technology
ガバメントクラウドの概要と自治体事例(名古屋市)
techniczna
2
220
Adminaで実現するISMS/SOC2運用の効率化 〜 アカウント管理編 〜
shonansurvivors
4
430
セキュアな認可付きリモートMCPサーバーをAWSマネージドサービスでつくろう! / Let's build an OAuth protected remote MCP server based on AWS managed services
kaminashi
3
270
『OCI で学ぶクラウドネイティブ 実践 × 理論ガイド』 書籍概要
oracle4engineer
PRO
3
190
プロポーザルのコツ ~ Kaigi on Rails 2025 初参加で3名の登壇を実現 ~
naro143
1
210
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
180
空間を設計する力を考える / 20251004 Naoki Takahashi
shift_evolve
PRO
4
460
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
4
300
M5製品で作るポン置きセルラー対応カメラ
sayacom
0
170
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
4
360
Performance Insights 廃止から Database Insights 利用へ/transition-from-performance-insights-to-database-insights
emiki
0
130
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9.1k
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Building Applications with DynamoDB
mza
96
6.7k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Optimizing for Happiness
mojombo
379
70k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.9k
4 Signs Your Business is Dying
shpigford
185
22k
Agile that works and the tools we love
rasmusluckow
331
21k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
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