Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Start a fullnode on GKE in <2 min - Alexander P...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
GoDays
January 30, 2019
Technology
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Start a fullnode on GKE in <2 min - Alexander Peters, IOV
Start a fullnode on GKE in <2 min - Alexander Peters, IOV
GoDays
January 30, 2019
More Decks by GoDays
See All by GoDays
Standing on the shoulders of giants - Tomasz Janiszewski - D2IQ
godays
1
160
How to instrument Go code in 2020 - Björn Rabenstein - Grafana Labs
godays
1
290
12 Factor CLI Apps with Cobra - Markus Zimmermann - cosee
godays
0
450
Integration and end-to-end testing with TestContainers-Go - Nikolay Kuznetsov & Erdem Toraman - Zalando
godays
1
1.2k
Fun with Functions - Frank Müller - Loodse
godays
0
160
Amazon SNS/SQS with Go - Paul Borlin - Compassion International
godays
1
350
Writing a language parser in 15min (or less) - Xavier Coulon - Red Hat
godays
0
150
A story about distributed computing before the cloud arrived - Rogier Lommers - bol.com
godays
0
140
Serverless Ops – Bye-bye Bash, Hello Go! - Rob Sutter - Amazon
godays
0
120
Other Decks in Technology
See All in Technology
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
680
Tab5をRubyで動くパソコンにする
kishima
2
280
AI時代だからこそ、スケールしないことをやろう
yutashigemura
1
130
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
340
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
140
V8コントリビュート超入門
riyaamemiya
0
160
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
7
7.7k
Snowflakeで実現する全社横断の顧客の声(VOC)分析・活用基盤@Snowflake World Tour Tokyo 2026
yuto16
0
160
Reactの設計論
uhyo
14
7.4k
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
440
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
280
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
160
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Balancing Empowerment & Direction
lara
6
1.3k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
970
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
260
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.7k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
Transcript
Start a full node on GKE in <2 min 2019
- Alexander Peters
About Me Alexander Peters Backend lead at IOV.one Go, K8s,
DevOps and Security
Architecture V S S iNet S L B
Architecture V S S iNet S L B
Containers
Minimal Container Images • Scratch Image • Alpine Linux when
OS required https://alpinelinux.org • Distroless base images https://github.com/GoogleContainerTools/distroless
State
State transfer • VolumeSnapshot Controller • VolumeSnapshot Provisioner > Disk
snapshots #FTW https://github.com/kubernetes-incubator/external-storage
Best height? F F F F F C
Take snapshot F F F C V
CRDs: VolumeSnapshots + Data > kubectl get volumesnapshots NAME AGE
godays-snap-1548763215780962127 17m godays-snap-1548763506627916883 12m godays-snap-1548763807378144367 7m apiVersion: volumesnapshot.external-storage.k8s.io/v1 kind: VolumeSnapshotData spec: gcePersistentDisk: snapshotId: pvc-d92e9529-2033-11e9-8eb6-42010a8400241548763507112695918
Let’s use it!
VolumeSnapshot Provisioning kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: snapshot-promoter provisioner:
volumesnapshot.external-storage.k8s.io/snapshot-promoter reclaimPolicy: Delete volumeBindingMode: Immediate parameters: type: pd-ssd https://github.com/kubernetes-incubator/external-storage/blob/master/snapshot/doc/user-guide.md
Sentry - Full Node Config apiVersion: apps/v1 kind: StatefulSet spec:
... volumeClaimTemplates: spec: storageClassName: snapshot-promoter selector: matchLabels: group: "godays" matchExpressions: - {key: approved, operator: Exists}
Not a live demo
PVC - Provisioning > kubectl get pvc -w ... godays-fullnode-xrpc-0
Pending snapshot-promoter 19s godays-fullnode-xrpc-0 Pending snapshot-promoter 22s godays-fullnode-xrpc-0 Pending snapshot-promoter 24s godays-fullnode-xrpc-0 Pending snapshot-promoter 26s godays-fullnode-xrpc-0 Pending snapshot-promoter 28s godays-fullnode-xrpc-0 Pending snapshot-promoter 30s godays-fullnode-xrpc-0 Pending snapshot-promoter 32s godays-fullnode-xrpc-0 Pending pvc-23c64f9c-2308-11e9-8eb6-42010a840024 0 snapshot-promoter 34s godays-fullnode-xrpc-0 Bound pvc-23c64f9c-2308-11e9-8eb6-42010a840024 33Gi RWO snapshot-promoter 34s godays-fullnode-xrpc-0 Bound pvc-23c64f9c-2308-11e9-8eb6-42010a840024 33Gi RWO snapshot-promoter 34s
Pod - Deployment > kubectl get pods -w godays-fullnode-xrpc-0 0/3
Pending 0 0s godays-fullnode-xrpc-0 0/3 Pending 0 34s godays-fullnode-xrpc-0 0/3 Init:0/2 0 34s godays-fullnode-xrpc-0 0/3 Init:0/2 0 44s godays-fullnode-xrpc-0 0/3 Init:1/2 0 45s godays-fullnode-xrpc-0 0/3 PodInitializing 0 46s godays-fullnode-xrpc-0 2/3 Running 0 47s godays-fullnode-xrpc-0 3/3 Running 0 59s
• Rolling snapshots *) • PVC not deleted • Data
integrity issues • Security concerns • High frequency Problems *) https://github.com/kubernetes-incubator/external-storage/issues/875
Summary • All good now! • Fast startup time <
2min • Works well with Horizontal Pod Autoscaler • Kubernetes v1.12 as an alpha feature
Thanks!
Bonus: Merkle tree https://en.wikipedia.org/wiki/Merkle_tree
Bonus: Working With Scratch Image • Go static compilation •
COPY ca-bundle.pem /etc/ssl/certs/ca-certificates.crt https://curl.haxx.se/docs/caextract.html • ENV ZONEINFO /zoneinfo.zip COPY zoneinfo.zip / In $GOROOT/lib/time/zoneinfo.zip https://golang.org/pkg/time/#LoadLocation