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
COSCUP - Dynamic Jenkins Agent on Kubernetes
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Rico Chen
August 01, 2020
70
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
COSCUP - Dynamic Jenkins Agent on Kubernetes
Jenkins CICD more Cloud Native way.
Rico Chen
August 01, 2020
More Decks by Rico Chen
See All by Rico Chen
How to monitor Cosmos validator by Prometheus
ricotoothless
0
660
how-to-choose-cicd-tools.pdf
ricotoothless
0
130
SRE Book Club - Linux - ch45 - Where's socket buffer
ricotoothless
0
190
SRE Book Club - Linux - ch38 - tcpdump & Wireshark
ricotoothless
0
70
Taiwan CDK Meetup - Rookie operator's CDK journey
ricotoothless
0
270
DevOps Taiwan 2020 Workshop - Jenkins CICD
ricotoothless
0
100
SRE Book Club - Kubernetes - ch32-35 - Network
ricotoothless
0
74
SRE Book Club - Kubernetes - ch22 - Job & CronJob
ricotoothless
0
49
Featured
See All Featured
How GitHub (no longer) Works
holman
316
150k
A Soul's Torment
seathinner
7
3.6k
HDC tutorial
michielstock
2
860
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
My Coaching Mixtape
mlcsv
0
310
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
410
Transcript
Dynamic Jenkins Agent on Kubernetes 政治要正確,正名 Jenkins Agent
Apology I shouldn't use a word like "slave" on the
COSCUP agenda description. All lives matters. Don’t KILLALL -9 me.
Who am I • I work for Bincentive • Volunteer
with DevOps Taiwan • Frozen lover
Agenda • What is Cloud Native • Why do we
keep using Jenkins? • Introduce plugins • Case study • Live demo • Reference
What is Cloud Native
Cloud Native definition • Cloud Native technologies build and run
scalable applications in modern, dynamic environments • Loosely coupled systems that are resilient, manageable, and observable
Why do we keep using Jenkins?
Jenkins advantage • Open source with rich community support •
More than 1000 plugins • Jenkins just like Transformers. Plugin can make Jenkins more Cloud Native way
巨巨巨巨巨巨巨巨巨巨巨巨巨巨巨 巨巨巨巨巨巨巨巨巨巨巨巨巨巨巨 巨巨巨巨巨巨巨巨巨巨巨巨巨巨巨 巨巨巨巨巨巨巨巨巨巨巨巨巨巨巨 巨巨巨巨巨巨巨巨巨巨巨巨巨巨巨 巨巨巨巨巨巨巨巨巨巨巨巨巨巨巨 巨巨巨巨巨巨巨巨巨巨巨巨巨巨 好巨的肩膀,不站嗎?
Introduce plugins
AWS ECS is base on Auto Scaling Group. 2018 was
lacking storage management. What can I do??? Main
Kubernetes plugin • Run dynamic agents in a Kubernetes •
The agent is essentially a pod • Can config PV, resources limit, namespaces … and more
How to config agent pod? • Start with UI •
Jenkins configuration as code plugin • Declarative or Scripted pipeline (use source control)
default namespace jenkins namespace EKS cluster Jenkins-agent service Jenkins main
service Kubernetes service 1 3 2
Jenkins agent pod docker dind jenkins-agent golang aws-cli nodeSelector tolerations
serviceAccount envVars
Case study
Issues • Too many microservices project • Prefer less plugins
to reduce Jenkins main’s complex • Compiler job could impact develop environment. We need isolate Jenkins agent pod. • Compiler resources usage
Pod Template docker dind jenkins- agent golang aws-cli docker dind
jenkins- agent node.js aws-cli Pod Template nodeSelector tolerations serviceAccount envVars nodeSelector tolerations serviceAccount envVars
Pod Template Pod Template golang docker dind jenkins- agent aws-cli
node.js nodeSelector tolerations serviceAccount envVars Jenkins shared library
agent pod jenkins main app pod app pod app pod
Normal worker nodes group jenkins agent worker nodes group
agent pod agent pod Can I build now? No. plz
queue.
Live demo
Isolate Jenkins aget pod • nodeSelector • taints • tolerations
Resources limit • only demo cpu request & limit
Reference
• Jenkins Kubernetes plugin • Jenkins Helm Charts • Jenkins
and Kubernetes - Secret Agents in the Clouds • Dynamic Jenkins Agent from Kubernetes • Docker image for inbound Jenkins agents • CNTUG #28 - Kubernetes Resource and Eviction Management and more (speak slide) • cAdvisor - Analyzes containers resources usage
• Jenkins Configuration as Code plugin • Jenkins Configuration as
Code Job DSL example • Jenins Job DSL GitHub • Jenkins Job DSL API Document • Jenkins Job DSL playground
• CNCF Cloud Native Definition v1.0 • Access-cluster-services • FluxCD,
ArgoCD or Jenkins X GitOps • “docker stop” and “docker kill”?
Thanks you Q & A