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
Custom Kubernetes Controllers at Mercari
Search
Yuki Ito
February 21, 2022
Programming
890
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Custom Kubernetes Controllers at Mercari
Yuki Ito
February 21, 2022
More Decks by Yuki Ito
See All by Yuki Ito
newmo の創業を支える Software Architecture と Platform Engineering
110y
5
3.7k
Modular Monolith Go Server with GraphQL Federation + gRPC
110y
1
1.2k
Modular Monolith + Go @ newmo
110y
1
1.3k
Go + GraphQL @ newmo
110y
3
1k
Architect / Platform Team at KAUCHE
110y
1
730
Cloud Run + Observability / Reliability @ KAUCHE
110y
0
690
Cloud Run CI/CD + QA @ KAUCHE
110y
1
690
Microservices on Cloud Run @ KAUCHE
110y
0
330
KAUCHE Loves Go
110y
0
550
Other Decks in Programming
See All in Programming
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
150
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
780
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4k
iOSDC2026登壇資料.pdf
riofujimon
0
110
AIエージェント時代のコードレビューを設計する
nogu66
6
2.6k
Family mrubyの進捗
kishima
1
110
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
300
デプロイ直後のレイテンシスパイクを調べたら、 Railsの仕様にたどり着いた
nhsykym
0
120
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
140
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
200
What We Talk About When We Talk About XP
m_seki
2
540
スマート反転とウェブアクセシビリティ
camiha
0
200
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
270
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Tell your own story through comics
letsgokoyo
1
1.1k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
A designer walks into a library…
pauljervisheath
211
25k
30 Presentation Tips
portentint
PRO
1
390
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Transcript
Custom Kubernetes Controllers at Mercari Yuki Ito (@mrno110) Kubernetes Casual
Talk
Merpay / Mercoin Architect Mercari Microservices Platform CI/CD Yuki Ito
@mrno110
Agenda ɾCustom Kubernetes Controllers ɾCode Generation
Agenda ɾCustom Kubernetes Controllers ɾCode Generation
spanner-autoscaler Autoscaler for the Google Cloud Spanner Instances
spanner-autoscaler apiVersion: spanner.mercari.com/v1alpha1 kind: SpannerAutoscaler metadata: name: spannerautoscaler-sample namespace: your-namespace
spec: scaleTargetRef: projectId: your-gcp-project-id instanceId: your-spanner-instance-id minNodes: 1 maxNodes: 4 maxScaleDownNodes: 1 targetCPUUtilization: highPriority: 60 Autoscaler for the Google Cloud Spanner Instances
spanner-autoscaler Google Cloud Day 2020 https://cloudonair.withgoogle.com/events/google-cloud-day-digital?talk=d3-da07
Bootes Bootes Namespace: a Namespace: b app: foo app: bar
app: foo app: bar app: foo app: bar Namespace: c xDS Control Plane Kubernetes Controller
Bootes xDS Control Plane Kubernetes Controller apiVersion: bootes.io/v1 kind: Cluster
metadata: name: example-cluster namespace: foo spec: config: name: example-cluster connect_timeout: 1s type: EDS lb_policy: ROUND_ROBIN http2_protocol_options: {} eds_cluster_config: eds_config: ads: {}
Bootes Envoy Meetup Tokyo #2 https://envoytokyo.connpass.com/event/175256/
Pull Request Replication Controller
Service Routing Controller
Service Routing Controller Merpay Tech Fest 2021 https://events.merpay.com/techfest-2021/
Agenda ɾCustom Kubernetes Controllers ɾCode Generation
Agenda ɾCustom Kubernetes Controllers ɾCode Generation
De fi ne CRDs as Protocol Buffers message Repository {
string owner = 1; string repository = 2; } type Repository struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Owner string `protobuf:...` Repository string `protobuf:...` } Protocol Buffers func (in *Repository) DeepCopyInto(out *Repository) { p := proto.Clone(in).(*Repository) *out = *p } func (in *Repository) DeepCopy() *Repository { if in == nil { return nil } out := new(Repository) in.DeepCopyInto(out) return out } protoc-gen-go protoc-gen-deepcopy
istio / tools / protoc-gen-deepcopy https://github.com/istio/tools/tree/master/cmd/protoc-gen-deepcopy
Generic protoc-gen-deepcopy https://github.com/protobuf-tools/protoc-gen-deepcopy
De fi ne CRDs as Protocol Buffers type Repository struct
{ state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Owner string `protobuf:...` Repository string `protobuf:...` } Protocol Buffers protoc-gen-go type Repository struct { v1.TypeMeta v1.ObjectMeta // Proto Buffer Struct Spec apisv1alpha1.Repository } kubetype-gen
istio / tools / kubetype-gen https://github.com/istio/tools/tree/master/cmd/kubetype-gen
Generic kubetype-gen https://github.com/110y/kubetype-gen
De fi ne CRDs as Protocol Buffers Protocol Buffers protoc-gen-go
/ protoc-gen-deepcopy Protocol Buffer Go Struct (+ DeepCopy) Kubernetes Go Types Custom Resource De fi nitions (YAML) kubetype-gen controller-gen
De fi ne CRDs as Protocol Buffers Protocol Buffers Advanced
Custom Resource De fi nitions (YAML) istio /tools / cue-gen