Slide 1

Slide 1 text

- “Java” Operator SDK でお⼿軽 Operator ⼊⾨ - RyuSA Java屋だってOperatorが作りたい︕

Slide 2

Slide 2 text

RyuSA Financial Service Engineer Java & SpringBoot / Typescript & React Docker / Kubernetes : RyuSA : ryusa_eng

Slide 3

Slide 3 text

OCHaCafe Session5 #1 のおさらい https://speakerdeck.com/oracle4engineer/kubernetes-operator-introduction

Slide 4

Slide 4 text

運⽤やワークロードの⾃動化を⽬的としたKubernetesの拡張機能 • 俗に⾔う「作業⼿順書」をコードに落とし込んで⾃動化するためのフレームワーク的なもの • たとえば、データベースのバックアップ作業やミドルウェアの復旧など kubebuilder / operator-sdk • Kubernetes の Operator を Go⾔語 で実装できるフレームワーク • 統合されたりラッパーになっていたりするが、できることは⼤体⼀緒 • Operatorの内部処理であるControllerを実装し、CRDを⽣成できます Kubernetes Operator とは

Slide 5

Slide 5 text

Overview – Kubernetes Operator Kubernetes Operator Deploy

Slide 6

Slide 6 text

Overview – Kubernetes Operator Kubernetes Operator Watch 👀

Slide 7

Slide 7 text

Overview – Kubernetes Operator Kubernetes Operator Deploy

Slide 8

Slide 8 text

Overview – Kubernetes Operator Kubernetes Operator Found CustomResource

Slide 9

Slide 9 text

Overview – Kubernetes Operator Kubernetes Operator Reconcile Side Effect

Slide 10

Slide 10 text

Overview – Kubernetes Operator Kubernetes Operator Reconcile Side Effect This looks like ... DDL CREATE TABLE... DML INSERT ... Application DCN (implements DatabaseChangeListener) Oracle Database

Slide 11

Slide 11 text

Overview – Kubernetes Operator Kubernetes Operator Reconcile Deploy Deploy Side Effect Watch 👀

Slide 12

Slide 12 text

Build Kubernetes Operators in Java Without Hassle お⼿軽に Kubernetes Operator を Java で作ろうぜ︕

Slide 13

Slide 13 text

• 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 実装

Slide 14

Slide 14 text

Greeter Watch 👀 GreeterOperator log.info(greeter.message) サンプル – Greeter Operator

Slide 15

Slide 15 text

CRD 実装 Greeter カスタムリソース Greeter クラス

Slide 16

Slide 16 text

Controller 実装 Greeter リソースが作成/変更された時 実⾏されるリコンサイル処理 Greeter リソースが削除された時 実⾏される finalize 処理

Slide 17

Slide 17 text

Operator 実装 Operator の設定を準備する Operatorインスタンスを起動して Operatorを起動する

Slide 18

Slide 18 text

Greeter Watch 👀 GreeterOperator log.info(“Hello World”) helloworld 全体の挙動

Slide 19

Slide 19 text

Kubernetes Operator とは • CRD と CR を使って運⽤の⾃動化などを実装できる Kubernetes の拡張機能 • kubebuilder や operator-sdk といったツールを使って実装することが多い(Go⾔語) Java Operator SDK • Kubernetes の Operator を Java で実装できるフレームワーク • Java の Kubernetes Client をベースに、キャッシュやリキューの機能が追加されている • Quarkus/Spring Boot での拡張が可能 まとめ