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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
910
iThome Kubernetes Summit 2018
shihyuho
0
79
JCConf 2016 zookeeper
shihyuho
0
93
Other Decks in Technology
See All in Technology
データ活用研修 問いの発見と仮説構築【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
670
WEBフロントエンド研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
740
PLaMo 3.0 Primeの事後学習
pfn
PRO
0
140
現場との対話から始める “作る前に問い直す”業務改善
mochico50
2
340
カメラ×AIで挑む「ホワイト物流」― 車両管理、自動化の壁と突破口【SORACOM Discovery 2026】
soracom
PRO
0
180
システム監視を 「システムを監視するだけ」で 終わらせないために
seiud
0
150
1台から試せる!Edge IoTを使った位置情報の活用設計【SORACOM Discovery 2026】
soracom
PRO
0
110
AI研修(Day2)【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
1.5k
Retriever と Reranker、結局どうする?
kazuaki
1
470
AWS環境のセキュリティ不安を解消した企業事例 ~よくある課題と対策を一挙公開~
asanoharuki
0
250
13年運用タイトルのサーバーサイドが辿り着いた現在地 ― モンスターストライクにおける技術・組織・AI活用から得た知見
mixi_engineers
PRO
1
320
システム監視入門
grimoh
5
760
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
270
Test your architecture with Archunit
thirion
1
2.3k
BBQ
matthewcrist
89
10k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
The Curious Case for Waylosing
cassininazir
1
440
Everyday Curiosity
cassininazir
0
270
WCS-LA-2024
lcolladotor
0
770
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
820
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