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
JCConf 2021 Access Kubernetes API in Java
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shihyu Ho
November 19, 2021
Technology
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JCConf 2021 Access Kubernetes API in Java
Access Kubernetes API in Java
Shihyu Ho
November 19, 2021
More Decks by Shihyu Ho
See All by Shihyu Ho
JCConf 2024 Jib
shihyuho
0
120
JCConf 2022 - Using ArchUnit to test your architecture
shihyuho
0
170
hybrid-cloud-seminar.pdf
shihyuho
0
130
JCConf 2020 Observing in Microservices
shihyuho
0
900
iThome Kubernetes Summit 2018
shihyuho
0
79
JCConf 2016 zookeeper
shihyuho
0
92
Other Decks in Technology
See All in Technology
GoでCコンパイラを作った話
repunit
0
150
41歳でAWSが好きすぎてITエンジニアになったおっさんの話
yama3133
1
740
AI時代におけるエンジニアの新たな役割──FDEとクオリアの探求/登壇資料(戸井田 裕貴)
hacobu
PRO
0
330
【公開用】AI_Dev_Ex2026_AI_登壇資料
matsuritechnologies
PRO
1
490
ここは地獄!つらい朝会を体験することで、チームとしてのより良い振る舞いに気づくワークショップ / The stand-up meeting from hell in the game industry
scrummasudar
0
230
データエンジニアリングとドメイン駆動設計
masuda220
PRO
14
2.5k
OpenTelemetryにおけるGoのゼロコード・コンパイル時計装について #fukuokago
quiver
0
230
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.5k
探索・可視化・自動化を一本化 Amazon Quickでデータ活用スピードを上げる方法
koheiyoshikawa
0
170
AI時代こそ、スケールしないことをしよう -「作る人」から「なぜ作るか」を考える人へ / Do Things That Don't Scale in the AI Era — From How to Why
kaminashi
1
100
生成 AI 時代にいま一度「問い合わせ」について考えてみる
kazzpapa3
1
130
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
2
950
Featured
See All Featured
Design in an AI World
tapps
1
270
Evolving SEO for Evolving Search Engines
ryanjones
0
240
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
340
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
420
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
640
Claude Code のすすめ
schroneko
67
230k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
410
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
Designing for humans not robots
tammielis
254
26k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Transcript
JCConf Taiwan 2021 Access Kubernetes API in Java Matt Ho
Access Kubernetes API in Java
Hi, I'm Matt https://github.com/shihyuho
[email protected]
@SoftLeader Access Kubernetes API in
Java
Requirements Some experience with Java and Spring. Basic understanding of
Kubernetes. YAML language. Access Kubernetes API in Java
你爲什麼會需要去跟 Kubernetes 互動? Access Kubernetes API in Java
Kubernetes Architecture Access Kubernetes API in Java
Kubernetes Architecture Access Kubernetes API in Java
環境準備 Local Kubernetes cluster 推薦: docker + minikube # Start
the cluster $ minikube start # Configure environment to use minikube’s Docker daemon $ eval $(minikube docker-env) # Halt the cluster $ minikube stop Access Kubernetes API in Java
環境準備 A simple web app w/ Spring Boot $ curl
https://start.spring.io/starter.zip \ -d dependencies=web,lombok,devtools \ -d bootVersion=2.5.7 \ -o demo.zip Access Kubernetes API in Java
環境準備 Add the following dependency to your pom.xml file: <dependency>
<groupId>io.fabric8</groupId> <artifactId>kubernetes-client</artifactId> <version>5.10.1</version> </dependency> <!-- Optional --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>1.5.12</version> </dependency> Access Kubernetes API in Java
Kubernetes Java Client Officially-supported - kubernetes-client/java Community-maintained - fabric8io/kubernetes-client Access
Kubernetes API in Java
起手式 try (var client = new DefaultKubernetesClient()) { client.{apiGroup}.{apiVersion}.{resource}.{verb}... }
Access Kubernetes API in Java
kubectl get pod -n default kubectl get service -A kubectl
get deploy -l my=label kubectl get cronjob myjob Access Kubernetes API in Java
A Hello Pod apiVersion: v1 kind: Pod metadata: name: hello
spec: containers: - name: hello image: busybox imagePullPolicy: IfNotPresent command: ["sh", "-c", "echo Hello JCConf Taiwan; sleep 2"] restartPolicy: Never Access Kubernetes API in Java
Builder Pattern new {Resource}Builder() .withNew{FieldObject} .with{Field}(...) .with{Field}(...) .end{FieldObject} .build(); Access
Kubernetes API in Java
Packing Image mvn compile com.google.cloud.tools:jib-maven-plugin:3.1.4:dockerBuild -Djib.to.image=demo:1.0.0 # mvn spring-boot:build-image -Dspring-boot.build-image.imageName=demo:1.0.0
Access Kubernetes API in Java
Deploy apiVersion: apps/v1 kind: Deployment metadata: name: demo spec: selector:
matchLabels: app: demo template: metadata: labels: app: demo spec: containers: - name: demo image: demo:1.0.0 Access Kubernetes API in Java
Kubernetes RBAC Access Kubernetes API in Java
Kubernetes RBAC Access Kubernetes API in Java
Kubernetes RBAC Access Kubernetes API in Java
apiVersion: v1 kind: ServiceAccount metadata: name: demo namespace: default ---
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: demo rules: - apiGroups: [ "" ] resources: [ "pods" ] verbs: [ "get", "list", "watch", "create", "update", "patch", "delete" ] - apiGroups: [ "" ] resources: [ "events" ] verbs: [ "list" ] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: demo roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: demo subjects: - kind: ServiceAccount name: demo namespace: default Access Kubernetes API in Java
Recap Basic understanding of Kubernetes API. How to access Kubernetes
API in Java. How to configure access control to the app. Demo code. Access Kubernetes API in Java
Thank you Access Kubernetes API in Java