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
Start a fullnode on GKE in <2 min - Alexander P...
Search
GoDays
January 30, 2019
Technology
0
110
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
Tweet
Share
More Decks by GoDays
See All by GoDays
Standing on the shoulders of giants - Tomasz Janiszewski - D2IQ
godays
1
120
How to instrument Go code in 2020 - Björn Rabenstein - Grafana Labs
godays
1
240
12 Factor CLI Apps with Cobra - Markus Zimmermann - cosee
godays
0
400
Integration and end-to-end testing with TestContainers-Go - Nikolay Kuznetsov & Erdem Toraman - Zalando
godays
1
1.1k
Fun with Functions - Frank Müller - Loodse
godays
0
110
Amazon SNS/SQS with Go - Paul Borlin - Compassion International
godays
1
300
Writing a language parser in 15min (or less) - Xavier Coulon - Red Hat
godays
0
110
A story about distributed computing before the cloud arrived - Rogier Lommers - bol.com
godays
0
100
Serverless Ops – Bye-bye Bash, Hello Go! - Rob Sutter - Amazon
godays
0
89
Other Decks in Technology
See All in Technology
ClaudeCode_vs_GeminiCLI_Terraformで比較してみた
tkikuchi
1
180
データ基盤からデータベースまで?広がるユースケースのDatabricksについて教えるよ!
akuwano
3
170
サイバーエージェントグループのSRE10年の歩みとAI時代の生存戦略
shotatsuge
4
990
LLM拡張解体新書/llm-extension-deep-dive
oracle4engineer
PRO
21
4.6k
microCMSではじめるAIライティング
himaratsu
0
140
全部AI、全員Cursor、ドキュメント駆動開発 〜DevinやGeminiも添えて〜
rinchsan
10
4.7k
american aa airlines®️ USA Contact Numbers: Complete 2025 Support Guide
aaguide
0
500
SRE不在の開発チームが障害対応と 向き合った100日間 / 100 days dealing with issues without SREs
shin1988
2
1.9k
Cortexで加速する AI不動産投資 RENOSYのデータ活用 @Snowflake ACCELERATE
yuto16
0
100
Four Keysから始める信頼性の改善 - SRE NEXT 2025
ozakikota
0
390
NewSQLや分散データベースを支えるRaftの仕組み - 仕組みを理解して知る得意不得意
hacomono
PRO
3
230
伴走から自律へ: 形式知へと導くSREイネーブリングによる プロダクトチームの信頼性オーナーシップ向上 / SRE NEXT 2025
visional_engineering_and_design
3
430
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
KATA
mclloyd
30
14k
Into the Great Unknown - MozCon
thekraken
40
1.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
970
Documentation Writing (for coders)
carmenintech
72
4.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
830
Adopting Sorbet at Scale
ufuk
77
9.5k
The Invisible Side of Design
smashingmag
301
51k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Designing Experiences People Love
moore
142
24k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
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