Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Java屋だってOperatorが作りたい!
RyuSA
February 16, 2022
Programming
1
230
Java屋だってOperatorが作りたい!
OCHaCafe5 #2 Kubernetesで並列分散処理 のLT登壇資料です
https://ochacafe.connpass.com/event/235859/
RyuSA
February 16, 2022
Tweet
Share
More Decks by RyuSA
See All by RyuSA
Visual Studio Codeとコンテナでいい感じのRe:View執筆環境
ryusa
1
780
JavaScriptと歩くポリシーエンジン jsPolicy
ryusa
1
230
TextAlive App APIと夢見る新しいUX
ryusa
1
120
Gitlab Operatorと夢見るGitlab自動化の旅
ryusa
2
460
AccessPoint Operator on Raspberry Pi
ryusa
1
680
Serviceをたずねて3000行 - Kubernetesコードリーディングの旅 -
ryusa
2
460
そのAPIはセキュアですか?
ryusa
2
640
「L3以下は魔法で動いている!」と言いながらiptablesとkube-proxyを読んでみた話
ryusa
1
48
「〇〇完全に理解したったww」から始めるエンジニア生活
ryusa
2
2.2k
Other Decks in Programming
See All in Programming
Android Compose Component - mapping.
taehwandev
0
120
Node.jsデザインパターンを読んで
mmmommm
0
2.4k
Swift Regex
usamik26
0
140
How we run a Realtime Puzzle Fighting Game on AWS Serverless
falken
0
250
Amazon ECSのネットワーク関連コストの話
msato
0
630
GitHub Actions を導入した経緯
tamago3keran
1
430
The strategies behind ddd – AdeoDevSummit 2022
lilobase
PRO
4
240
Web API連携でCSRF対策がどう実装されてるか調べた / how to implements csrf-detection on Web API
yasuakiomokawa
2
330
Overview of The Modern Data Stack / モダンデータスタック概論
satoshihirose
6
3.3k
開発速度を5倍早くするVSCodeの拡張機能を作った
purp1eeeee
2
150
模組化的Swift架構(二) DDD速成
haifengkao
0
380
競プロのすすめ
uya116
0
660
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
15
36k
The Pragmatic Product Professional
lauravandoore
19
3k
The MySQL Ecosystem @ GitHub 2015
samlambert
238
11k
KATA
mclloyd
7
8.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
10
3.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
655
120k
It's Worth the Effort
3n
172
25k
Build The Right Thing And Hit Your Dates
maggiecrowley
19
1.2k
How to train your dragon (web standard)
notwaldorf
58
3.9k
Done Done
chrislema
174
14k
From Idea to $5000 a Month in 5 Months
shpigford
373
44k
The Art of Programming - Codeland 2020
erikaheidi
32
10k
Transcript
- “Java” Operator SDK でお⼿軽 Operator ⼊⾨ - RyuSA Java屋だってOperatorが作りたい︕
RyuSA Financial Service Engineer Java & SpringBoot / Typescript &
React Docker / Kubernetes : RyuSA : ryusa_eng
OCHaCafe Session5 #1 のおさらい https://speakerdeck.com/oracle4engineer/kubernetes-operator-introduction
運⽤やワークロードの⾃動化を⽬的としたKubernetesの拡張機能 • 俗に⾔う「作業⼿順書」をコードに落とし込んで⾃動化するためのフレームワーク的なもの • たとえば、データベースのバックアップ作業やミドルウェアの復旧など kubebuilder / operator-sdk • Kubernetes
の Operator を Go⾔語 で実装できるフレームワーク • 統合されたりラッパーになっていたりするが、できることは⼤体⼀緒 • Operatorの内部処理であるControllerを実装し、CRDを⽣成できます Kubernetes Operator とは
Overview – Kubernetes Operator Kubernetes Operator Deploy
Overview – Kubernetes Operator Kubernetes Operator Watch 👀
Overview – Kubernetes Operator Kubernetes Operator Deploy
Overview – Kubernetes Operator Kubernetes Operator Found CustomResource
Overview – Kubernetes Operator Kubernetes Operator Reconcile Side Effect
Overview – Kubernetes Operator Kubernetes Operator Reconcile Side Effect This
looks like ... DDL CREATE TABLE... DML INSERT ... Application DCN (implements DatabaseChangeListener) Oracle Database
Overview – Kubernetes Operator Kubernetes Operator Reconcile Deploy Deploy Side
Effect Watch 👀
Build Kubernetes Operators in Java Without Hassle お⼿軽に Kubernetes Operator
を Java で作ろうぜ︕
• Kubernetes Operator の⾔葉を Java クラスで実装する • Custom Resource Definition
• = POJO (Plain Old Java Object) • Controller • = interface Reconciler を実装 • Integration with ... • Quarkus • CDI support • container build with JIB • providing some dev tools • Spring Boot JOSDK 実装
Greeter Watch 👀 GreeterOperator log.info(greeter.message) サンプル – Greeter Operator
CRD 実装 Greeter カスタムリソース Greeter クラス
Controller 実装 Greeter リソースが作成/変更された時 実⾏されるリコンサイル処理 Greeter リソースが削除された時 実⾏される finalize 処理
Operator 実装 Operator の設定を準備する Operatorインスタンスを起動して Operatorを起動する
Greeter Watch 👀 GreeterOperator log.info(“Hello World”) helloworld 全体の挙動
Kubernetes Operator とは • CRD と CR を使って運⽤の⾃動化などを実装できる Kubernetes の拡張機能
• kubebuilder や operator-sdk といったツールを使って実装することが多い(Go⾔語) Java Operator SDK • Kubernetes の Operator を Java で実装できるフレームワーク • Java の Kubernetes Client をベースに、キャッシュやリキューの機能が追加されている • Quarkus/Spring Boot での拡張が可能 まとめ