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
fleet: systemd for clusters @ LinuxCon Europe 2014
Search
Brandon Philips
October 13, 2014
Programming
1.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
fleet: systemd for clusters @ LinuxCon Europe 2014
Brandon Philips
October 13, 2014
More Decks by Brandon Philips
See All by Brandon Philips
Node.js Workflow with Minikube and Skaffold
philips
0
300
Manage the App on Kubernetes
philips
0
380
Production Backbone Monitoring Containerized Apps
philips
0
240
KubeCon EU 2017: Dancing on the Edge of a Volcano
philips
1
890
rkt - KubeCon EU keynote - 2017
philips
1
320
FOSDEM_Keynote_2017-_.pdf
philips
0
180
Tectonic Summit Day 2 Keynote
philips
0
430
Kubernetes: Simple to Manage Anywhere (self-hosted, Tectonic upgrade demo)
philips
0
460
KubeCon Keynote 2016- Distributed Systems Simplified on Kubernetes
philips
2
600
Other Decks in Programming
See All in Programming
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
120
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
310
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
330
Security issues being discussed on Web Platforms
petamoriken
0
940
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
1.8k
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
4
2.4k
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
170
What We Talk About When We Talk About XP
m_seki
2
620
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
100
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
280
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
160
Featured
See All Featured
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
How GitHub (no longer) Works
holman
316
150k
Making Projects Easy
brettharned
120
6.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
Are puppies a ranking factor?
jonoalderson
2
3.9k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Skip the Path - Find Your Career Trail
mkilby
1
230
Facilitating Awesome Meetings
lara
57
7.1k
Transcript
fleet systemd for clusters @coreoslinux
About Me CTO/CO-FOUNDER systems engineer @brandonphilips github.com/philips
Mistakes will be made. Please speak up.
what are we all doing? clusters
systemd configure, execute, monitor
# cat myservice.service [Service] ExecStart=/usr/bin/myservice # systemctl start myservice.service
# cat myservice.service [Service] ExecStart=/usr/bin/myservice
# cat myservice.service [Service] Environment=”PASSWORD=123” ExecStart=/usr/bin/myservice
# cat myservice.service [Service] Environment=”PASSWORD=123” ExecStart=/usr/bin/myservice CPUShares=512 MemoryLimit=1G
# cat myservice.service [Unit] Description=My Awesome Service [Service] Environment=”PASSWORD=123” ExecStart=/usr/bin/myservice
CPUShares=512 MemoryLimit=1G
configuration env variables current working directory users and groups cgroups
namespaces CPU affinity dependencies seccomp filters resources limits
whats the process doing? monitoring
github.com/coreos/go-systemd
cluster schedulers how do they work?
Warning: advanced graphics ahead
SCHEDULE - Task 1 - Task 2 - Task 3
Scheduler API
Machine A Machine B Machine C Task 1 SCHEDULE -
Task 1 - Task 2 - Task 3 Scheduler
Machine A Machine B SCHEDULE - Task 1 - Task
2 - Task 3 Scheduler
Machine A Machine B Task 1 SCHEDULE - Task 1
- Task 2 - Task 3 Scheduler
Scheduler Agent Machine C Task 1 systemd
etcd holder of global state
etcd
/etc distributed
open source software highly available and reliable sequentially consistent watchable
exposed via HTTP runtime reconfigurable
-X GET Get Wait -X PUT Put Create CAS -X
DELETE Delete CAD
Available
Available
Available
Unavailable
demo!
don’t lose stuff conclusion
make atomic changes conclusion
fleet scheduler & agent
# cat myservice.service [Service] ExecStart=/usr/bin/myservice # systemctl start myservice.service
# cat myservice.service [Service] ExecStart=/usr/bin/myservice # fleetctl start myservice.service
demo!
fleet engine take global state & schedule
Machine A Machine B Machine C Task 1 SCHEDULE -
Task 1 - Task 2 - Task 3 Scheduler
machine with this tag require
same machine as this require
this specific machine require
# cat myservice.service [Service] ExecStart=/usr/bin/myservice [X-Fleet] X-Conflicts=notmyservice.service # fleetctl start
myservice.service
fleet agent run schedule & report state
Scheduler Agent Machine C Task 1 systemd
demo!
service discovery where is this stuff running?
do it yourself registration
get some help registration
None
None
fleetctl and API control remotely
demo!
future work
None