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
280
Ruby 型別檢查工具簡介
johnlinvc
0
490
Swift Actor 實作探索
johnlinvc
0
160
用 mruby 來寫跨平台工具
johnlinvc
0
83
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
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
7
1.6k
フロントエンド開発に役立つクライアントプログラム共通のノウハウ / Universal client-side programming best practices for frontend development
nrslib
7
3.9k
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
160
メモリ不足との戦い〜大量データを扱うアプリでの実践例〜
kwzr
1
870
CSC509 Lecture 02
javiergs
PRO
0
410
Playwrightはどのようにクロスブラウザをサポートしているのか
yotahada3
7
2.3k
iOS 17で追加されたSubscriptionStoreView を利用して5分でサブスク実装チャレンジ
natmark
0
590
CSC509 Lecture 01
javiergs
PRO
1
430
プログラミングどうやる? ~テスト駆動開発から学ぶ達人の型~
a_okui
0
190
いま中途半端なSwift 6対応をするより、Default ActorやApproachable Concurrencyを有効にしてからでいいんじゃない?
yimajo
2
340
CI_CD「健康診断」のススメ。現場でのボトルネック特定から、健康診断を通じた組織的な改善手法
teamlab
PRO
0
180
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
3k
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
431
66k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Documentation Writing (for coders)
carmenintech
75
5k
Thoughts on Productivity
jonyablonski
70
4.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
890
A Tale of Four Properties
chriscoyier
160
23k
Gamification - CAS2011
davidbonilla
81
5.5k
How to Think Like a Performance Engineer
csswizardry
27
2k
Optimizing for Happiness
mojombo
379
70k
The Straight Up "How To Draw Better" Workshop
denniskardys
237
140k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
960
Embracing the Ebb and Flow
colly
88
4.8k
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ɻ