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
100
一起玩 Helm 3
Johnlin
November 30, 2020
Tweet
Share
More Decks by Johnlin
See All by Johnlin
用 MLIR 實作 一個 Ruby IR (intermediate representation)
johnlinvc
0
79
Unearth Ruby builtin Gems 發掘 Ruby 的內建 Gems
johnlinvc
0
220
Ruby 型別檢查工具簡介
johnlinvc
0
420
Swift Actor 實作探索
johnlinvc
0
140
用 mruby 來寫跨平台工具
johnlinvc
0
64
Actor model 簡介
johnlinvc
0
170
為什麼 App 卡卡的
johnlinvc
2
1.1k
如何使用 byebug 來除錯 Ruby 程式
johnlinvc
0
180
Life of a Cell
johnlinvc
0
1.4k
Other Decks in Programming
See All in Programming
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.6k
ML.NETで始める機械学習
ymd65536
0
240
DevNexus - Create AI Infused Java Apps with LangChain4j
kdubois
0
120
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1.2k
ナレッジイネイブリングにAIを活用してみる ゆるSRE勉強会 #9
nealle
0
160
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
230
Better Code Design in PHP
afilina
0
180
CDKを使ったPagerDuty連携インフラのテンプレート化
shibuya_shogo
0
110
Amazon Bedrockマルチエージェントコラボレーションを諦めてLangGraphに入門してみた
akihisaikeda
1
150
Jakarta EE meets AI
ivargrimstad
0
560
機能が複雑化しても 頼りになる FactoryBotの話
tamikof
1
230
Learning Kotlin with detekt
inouehi
1
160
Featured
See All Featured
RailsConf 2023
tenderlove
29
1k
A Tale of Four Properties
chriscoyier
158
23k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Practical Orchestrator
shlominoach
186
10k
Site-Speed That Sticks
csswizardry
4
410
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Writing Fast Ruby
sferik
628
61k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Faster Mobile Websites
deanohume
306
31k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
For a Future-Friendly Web
brad_frost
176
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ɻ