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
20261017福岡devIO 「AIは"良いダッシュボード"を作れるか?
jtakeda
0
170
専門領域のAIをどう評価するか
bengo4com
2
270
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
200
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
300
How to Design Configuration for Rails Applications
willnet
1
830
古い指輪から広がった JAVA コミュニティ とのつながり
yamad
0
130
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
フロントエンドカンファレンス関西2026 - 速すぎるUIに、待ち時間を
teamlab
PRO
0
180
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
1
110
その Valkey 使いこなしていますか?
onk
PRO
5
1.6k
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
280
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
340
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
360
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
What's in a price? How to price your products and services
michaelherold
247
13k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
730
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
4 Signs Your Business is Dying
shpigford
187
23k
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
We Have a Design System, Now What?
morganepeng
55
8.4k
GraphQLとの向き合い方2022年版
quramy
50
15k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
620
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