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
52
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
96
Лаборатория для баз данных
devopsdaysmoscow
0
80
Выживет ли DevOps в эпоху цифровизации?
devopsdaysmoscow
0
75
Цифровой продукт
devopsdaysmoscow
0
35
DevOps в Enterprise
devopsdaysmoscow
0
250
Перестаньте использовать crond
devopsdaysmoscow
0
53
Мы все DevOps
devopsdaysmoscow
0
54
Kubernetes против реальности
devopsdaysmoscow
0
230
Управление знаниями в ИТ: при чем тут DevOps и привычки?
devopsdaysmoscow
0
80
Other Decks in Technology
See All in Technology
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
990
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
970
NAB Show 2026 動画技術関連レポート / NAB Show 2026 Report
cyberagentdevelopers
PRO
0
200
Claude Codeをどのように キャッチアップしているか
oikon48
12
7.9k
Agent Skills設計で柔軟性と硬さのバランスが難しい話
nassy20
0
130
AIエージェントが名古屋の猛暑からあなたを守る
happysamurai294
0
110
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.9k
AAIFに入ってみた ~内から見えるコミュニティ動向~
sato4
0
200
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
200
入門!AWS Blocks
ysuzuki
1
120
AWSシリコン最前線 〜AI時代のチップ選択を読み解く〜
htokoyo
2
610
失敗を資産に変えるClaude Code
shinyasaita
0
650
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
The agentic SEO stack - context over prompts
schlessera
0
820
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
310
The Curious Case for Waylosing
cassininazir
1
390
WCS-LA-2024
lcolladotor
0
630
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
Typedesign – Prime Four
hannesfritz
42
3.1k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
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