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 3
Search
Johnlin
November 30, 2020
Programming
1
120
一起玩 Helm 3
Johnlin
November 30, 2020
Tweet
Share
More Decks by Johnlin
See All by Johnlin
用 MLIR 實作 一個 Ruby IR (intermediate representation)
johnlinvc
0
150
Unearth Ruby builtin Gems 發掘 Ruby 的內建 Gems
johnlinvc
0
270
Ruby 型別檢查工具簡介
johnlinvc
0
490
Swift Actor 實作探索
johnlinvc
0
160
用 mruby 來寫跨平台工具
johnlinvc
0
82
Actor model 簡介
johnlinvc
0
190
為什麼 App 卡卡的
johnlinvc
2
1.2k
如何使用 byebug 來除錯 Ruby 程式
johnlinvc
0
210
Life of a Cell
johnlinvc
0
1.4k
Other Decks in Programming
See All in Programming
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
510
Compose Multiplatform × AI で作る、次世代アプリ開発支援ツールの設計と実装
thagikura
0
170
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
1.9k
JSONataを使ってみよう Step Functionsが楽しくなる実践テクニック #devio2025
dafujii
1
610
Cache Me If You Can
ryunen344
2
3k
Kiroで始めるAI-DLC
kaonash
2
610
Putting The Genie in the Bottle - A Crash Course on running LLMs on Android
iurysza
0
140
楽して成果を出すためのセルフリソース管理
clipnote
0
180
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
870
旅行プランAIエージェント開発の裏側
ippo012
2
920
🔨 小さなビルドシステムを作る
momeemt
4
690
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
340
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
Practical Orchestrator
shlominoach
190
11k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
A Modern Web Designer's Workflow
chriscoyier
696
190k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Writing Fast Ruby
sferik
628
62k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Optimizing for Happiness
mojombo
379
70k
Docker and Python
trallard
46
3.6k
Transcript
Ұى؝ Helm 3 John Lin (@johnlinvc)
᮫ԙզ • John Lin • Twitter: @johnlinvc • Senior Solution
Architect, DevOps @ West Pharmaceutical
ࣾ܈׆ಈ • iplayground.io 2020 Keynote ߨऀ • Coscup, RubyConf TW,
RubyKaigi, PyCon TW ߨऀ • ओ㭎 Swift Taipei Meetup
ॄኄੋ Helm ? • > Helm is the best way
to find, share, and use software built for Kubernetes. • > Helm helps you manage Kubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.
Helm ೳ၏ॄኄʁ • ҆ Chart • ઃఆ Chart • Rollback
Chart • ؐ༗ߋଟ
• ؆ᄸိ㘸बੋऔ • kubectl create -f • kubectl edit Helm
ೳ၏ॄኄʁ
҆ • HomeBrew: brew install helm • Linuxɿcurl https://raw.githubusercontent.com/helm/helm/master/scripts/ get-helm-3
| bash • APT: ༗ᴍຑɼՄҎɻ
Helm ໊ࢺղᬶ • Chart • Repo • Config • Release
Chart • Helm త݅ᄸҐ • 㚎ؚ k8s resource template, default
values • ՄҎ༗ dependency • ૾ੋ rpm, deb తײ᧷
Repo • ଘ์ Chart త server • ओཁ༗ၷݸޭೳɿྻग़ Charts Լࡌ
Chart • ಉԙ apt/yum repo
Config • ์ਐ k8s resource template ཫతᆴɻ • Chart ။༗༬ઃᆴɻ
• ՄҎࡏ㑌ݸ release ཫڅෆಉతᆴɻ
Release • Ұݸӡߦதత Chartɼ૾ੋ Process తײ᧷ɻ • धཁڅଞҰݸ໊ࣈɻ • ՄҎ༗ଟݸಉ࣌ӡߦʢ
Chart ሜಘతʣ
༻ Helmɼ Ҏ Prometheus ҝྫ • Prometheus ੋҰ߇ܥ౷ɻk8s ཫେྔ༻ɻ •
https://github.com/prometheus-community/helm-charts/tree/main/charts/ prometheus •
Ճೖ Repo • repo Ճೖ local helm ɻṜᒬ࠽ೳፙ౸ chartɻ
• helm repo add prometheus-community https://prometheus- community.github.io/helm-charts • helm repo add stable https://charts.helm.sh/stable
҆ Chart • ༻ prometheus chart ҆Ұݸ release ໊ҝ demo-promɻ
• helm install demo-prom prometheus-community/prometheus
NOTES.txt • 䋯 install/upgrade ޙ။ग़ݱత㘸໌ɻ • ҰᒬՄҎ༻ templateɻॴҎ௨ৗՄҎෳష্ɻཫ໘త namespace ྨ
తҰൠိ㘸။ੋሣతɻ • export POD_NAME=$(kubectl get pods --namespace default -l "app=prometheus,component=server" -o jsonpath="{.items[0].metadata.name}") • kubectl --namespace default port-forward $POD_NAME 9090
Side Topic:HSTS • HTTP Strict Transport Security • Ұୠ༻ https
࿈աతҬɼब࠶ෆೳ༻ http ྃ... • localhost ༗࣌ީҰෆখ৺बෆೳ༻ http ྃ • ՄҎ༻ *.vcap.me ႔ཧɻ *.vcap.me Ӭԕ။ࢦ 127.0.0.1
List release • ྻग़ݱࡏ context Լతॴ༗ release • Helm list
ઃఆ Chart • ༗ၷछํࣜ • --set key1=val1 (ෆਪનɼه೭લଧաॄኄबࢮఆྃʣ • --values
values.yaml ( ՄҎ commit ਐ git )
ઃఆ Chart • values.yaml server: statefulSet: enabled: true •
ߋ৽ Chart • helm upgrade demo-prom prometheus-community/prometheus -f values.yaml
List Release History • ྻग़ release త㑖࢙ل㑚ɻ • helm history
demo-prom
Rollback Release • Rollback release ౸೭લత൛ຊɼแؚ config, chart ൛ຊɻ •
helm rollback demo-prom 1 • helm history demo-prom
႟আ release • helm uninstall demo-prom
ৗݟత • ߋ৽ޙࣗಈੜతີᛰᏓྃɿՄҎࡏ release secret ཫፙ౸ᢜతᆴɼઃఆਐ ჩᏐཫ೭ޙबෆ။Ꮣྃɻ • ৽తઃఆᔒ༗ੜᏈɿChart ᔒ༗ਖ਼֬ઃఆ
Deployment/Statefulset/ DaemonSet తߋ৽ᑍ݅ɻधཁखಈࣥߦ kubectl rollout restartɻ
Helm 2 vs Helm 3 • ᔒ༗ Tiller ɼෆधཁࡏ K8S
Cluster ཫ౦ྃɻ • औফ౷Ұ RepoɼվҝࢄࣜɻՄҎ༻ https://artifacthub.io ፙ Chartɻ • ࢦྩ໊ඍվᏓɻ fetch -> pullɻɻ • ࢧԉ༻ OCI registry ိଘ์ Chart
Helm 2 end of support • Tiller image Մೳᬋ࣌။ํଘ์ɻ •
Helm 2 client Մೳ။ํɼෆա get.helm.sh ။ಈɻ • Stable chart repo https://github.com/helm/charts ࡏ Nov 13, 2020 ਖ਼ࣜऴࢭࢧԉྃɻ
Helm vs Others • Kustomize • Operator
Helm vs Kustomize • Template vs Overlay(Patching) • Rollback •
Helm ՄҎࡏ post rendering hook ཫ໘ݺڣ Kustomize • https://github.com/thomastaylor312/advanced-helm-demos/tree/master/ post-render
Helm vs Operator • Day 1 (Helm) vs Day 2(Operator)
• ޓิɼhelm ෛ҆ ɼ Operator ෛӡ࡞ɻ • ՄҎ༻ helm chart ိ෦ॺ Operator • https://sdk.operatorframework.io/docs/building-operators/helm/ quickstart/
መ • ෆཁ༻ chart ɼఆٛࣗݾత chart ɼ࠶֎෦త chart ఆٛҝ dependencyɻᙛ༻
configmap/secret ိ၏ઃఆ࣌࠽ํศɻ • ༻ helmfile + helm secrets plugin ိ၏ GitOpsɼҰଘ์ࡏ Git ཫɻ • ળ༻ helm త plugin ܥ౷ɼՄҎఏڙڐଟֹ֎తޭೳɻ
ະ᠃ • ։ᚙࣗݾత Helm Chart • ༻ helmfile • ։ᚙࣗݾత
Helm Plugin
Q&A • Twitter: @johnlinvc • Өยࡏ https://bit.ly/39pcPiM • We're
hiring DevOps @ West Pharma, Deploying to hybrid cloud with K8Sɻ