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
Java屋だってOperatorが作りたい!
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
RyuSA
February 16, 2022
Programming
1
590
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
1.6k
JavaScriptと歩くポリシーエンジン jsPolicy
ryusa
1
580
TextAlive App APIと夢見る新しいUX
ryusa
1
430
Gitlab Operatorと夢見るGitlab自動化の旅
ryusa
2
1.1k
AccessPoint Operator on Raspberry Pi
ryusa
1
1.2k
Serviceをたずねて3000行 - Kubernetesコードリーディングの旅 -
ryusa
2
890
そのAPIはセキュアですか?
ryusa
2
830
「L3以下は魔法で動いている!」と言いながらiptablesとkube-proxyを読んでみた話
ryusa
1
160
「〇〇完全に理解したったww」から始めるエンジニア生活
ryusa
2
4.5k
Other Decks in Programming
See All in Programming
Oxlint JS plugins
kazupon
1
1.1k
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
CSC307 Lecture 09
javiergs
PRO
1
850
今、アーキテクトとして 品質保証にどう関わるか
nealle
0
180
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
2.6k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
2k
AI主導でFastAPIのWebサービスを作るときに 人間が構造化すべき境界線
okajun35
0
290
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
22
8k
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
12
6.7k
AI & Enginnering
codelynx
0
140
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
2k
CSC307 Lecture 10
javiergs
PRO
1
690
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
230
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
190
BBQ
matthewcrist
89
10k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Optimizing for Happiness
mojombo
379
71k
Embracing the Ebb and Flow
colly
88
5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
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 での拡張が可能 まとめ