Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
JCConf 2021 Access Kubernetes API in Java
Search
Shihyu Ho
November 19, 2021
Technology
170
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
180
hybrid-cloud-seminar.pdf
shihyuho
0
130
JCConf 2020 Observing in Microservices
shihyuho
0
940
iThome Kubernetes Summit 2018
shihyuho
0
83
JCConf 2016 zookeeper
shihyuho
0
100
Other Decks in Technology
See All in Technology
AIに賢く動いてもらうためのコンテキスト〜Snowflake女子会 vol.8
snowwmn0824
0
200
20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する
yhana
1
380
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
1
290
AI感のないAWS構成図をAIエージェントに描かせたい!
sagochiko
2
480
IR Today: Theory, Practice, and Agents
dtunkelang
0
270
AI駆動開発で仕様はどこまで書くべきか? ― 人とAIの責務境界から考える開発プロセスの実践
takahiromatsui
1
250
AWS FinOps Agent 結局何が得意なの?
siromi
0
220
形式手法を使って仕様をコーディングしよう
mikanichinose
0
150
spanner-autoscalerに学ぶ CRD設計パターン 〜自動化と緊急時対応を両立する Kubernetesコントローラーの作り方〜
tkuchiki
0
210
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
270
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
550
DORA_Metrics.pdf
wagnerfusca
1
140
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
41k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Writing Fast Ruby
sferik
630
63k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
A Tale of Four Properties
chriscoyier
163
24k
The Limits of Empathy - UXLibs8
cassininazir
1
690
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
850
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
330
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
720
Abbi's Birthday
coloredviolet
4
10k
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