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
110
一起玩 Helm 3
Johnlin
November 30, 2020
Tweet
Share
More Decks by Johnlin
See All by Johnlin
用 MLIR 實作 一個 Ruby IR (intermediate representation)
johnlinvc
0
110
Unearth Ruby builtin Gems 發掘 Ruby 的內建 Gems
johnlinvc
0
240
Ruby 型別檢查工具簡介
johnlinvc
0
450
Swift Actor 實作探索
johnlinvc
0
150
用 mruby 來寫跨平台工具
johnlinvc
0
71
Actor model 簡介
johnlinvc
0
180
為什麼 App 卡卡的
johnlinvc
2
1.2k
如何使用 byebug 來除錯 Ruby 程式
johnlinvc
0
200
Life of a Cell
johnlinvc
0
1.4k
Other Decks in Programming
See All in Programming
型安全RESTで爆速プロトタイピング – Hono RPC実践
tacke_jp
0
110
単体テストの始め方/作り方
toms74209200
0
360
TypeScript LSP の今までとこれから
quramy
1
460
Parallel::Pipesの紹介
skaji
2
900
F#で自在につくる静的ブログサイト - 関数型まつり2025
pizzacat83
0
200
Blueskyのプラグインを作ってみた
hakkadaikon
1
410
レガシーシステムの機能調査・開発におけるAI利活用
takuya_ohtonari
0
440
生成AIで日々のエラー調査を進めたい
yuyaabo
0
250
イベントストーミングから始めるドメイン駆動設計
jgeem
3
750
Zennの運営完全に理解した #完全に理解したTalk
wadayusuke
1
170
機械学習って何? 5分で解説頑張ってみる
kuroneko2828
0
180
複数アプリケーションを育てていくための共通化戦略
irof
9
3.5k
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
860
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
25
2.8k
A Tale of Four Properties
chriscoyier
159
23k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
470
Navigating Team Friction
lara
186
15k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.4k
Mobile First: as difficult as doing things right
swwweet
223
9.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ɻ