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
fleet: systemd for clusters @ LinuxCon Europe 2014
Search
Brandon Philips
October 13, 2014
Programming
1.3k
1
Share
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
290
Manage the App on Kubernetes
philips
0
370
Production Backbone Monitoring Containerized Apps
philips
0
230
KubeCon EU 2017: Dancing on the Edge of a Volcano
philips
1
850
rkt - KubeCon EU keynote - 2017
philips
1
300
FOSDEM_Keynote_2017-_.pdf
philips
0
170
Tectonic Summit Day 2 Keynote
philips
0
410
Kubernetes: Simple to Manage Anywhere (self-hosted, Tectonic upgrade demo)
philips
0
440
KubeCon Keynote 2016- Distributed Systems Simplified on Kubernetes
philips
2
580
Other Decks in Programming
See All in Programming
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
dRuby over BLE
makicamel
2
320
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
140
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
5.2k
CSC307 Lecture 17
javiergs
PRO
0
310
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.5k
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
720
The NotImplementedError Problem in Ruby
koic
1
600
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
750
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
140
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.1k
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
GitHub's CSS Performance
jonrohan
1033
470k
Mind Mapping
helmedeiros
PRO
1
230
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
550
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
600
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Discover your Explorer Soul
emna__ayadi
2
1.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
For a Future-Friendly Web
brad_frost
183
10k
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