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
RyuSA
February 16, 2022
Programming
1
490
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.4k
JavaScriptと歩くポリシーエンジン jsPolicy
ryusa
1
510
TextAlive App APIと夢見る新しいUX
ryusa
1
310
Gitlab Operatorと夢見るGitlab自動化の旅
ryusa
2
910
AccessPoint Operator on Raspberry Pi
ryusa
1
1.1k
Serviceをたずねて3000行 - Kubernetesコードリーディングの旅 -
ryusa
2
750
そのAPIはセキュアですか?
ryusa
2
760
「L3以下は魔法で動いている!」と言いながらiptablesとkube-proxyを読んでみた話
ryusa
1
110
「〇〇完全に理解したったww」から始めるエンジニア生活
ryusa
2
4.1k
Other Decks in Programming
See All in Programming
Djangoの開発環境で工夫したこと - pre-commit / DevContainer
hiroki_yod
1
330
rails new flags - `rails new` のフラグから Rails を構成するコンポーネントの変遷をザックリ眺める
snaka
0
1.8k
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
0
730
광고 소재 심사 과정에 AI를 도입하여 광고 서비스 생산성 향상시키기
kakao
PRO
0
180
watsonx.ai Dojo #4 生成AIを使ったアプリ開発、応用編
oniak3ibm
PRO
1
230
Remix on Hono on Cloudflare Workers
yusukebe
1
320
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
370
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
210
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
130
カンファレンスの「アレ」Webでなんとかしませんか? / Conference “thing” Why don't you do something about it on the Web?
dero1to
1
130
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
140
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Building Applications with DynamoDB
mza
90
6.1k
A Modern Web Designer's Workflow
chriscoyier
693
190k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
Adopting Sorbet at Scale
ufuk
73
9.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
140
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
KATA
mclloyd
29
14k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
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 での拡張が可能 まとめ