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
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
370
Production Backbone Monitoring Containerized Apps
philips
0
230
KubeCon EU 2017: Dancing on the Edge of a Volcano
philips
1
870
rkt - KubeCon EU keynote - 2017
philips
1
310
FOSDEM_Keynote_2017-_.pdf
philips
0
180
Tectonic Summit Day 2 Keynote
philips
0
420
Kubernetes: Simple to Manage Anywhere (self-hosted, Tectonic upgrade demo)
philips
0
450
KubeCon Keynote 2016- Distributed Systems Simplified on Kubernetes
philips
2
590
Other Decks in Programming
See All in Programming
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
250
継続モナドとリアクティブプログラミング
yukikurage
3
670
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
160
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
110
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
130
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
260
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
450
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
380
メールのエイリアス機能を履き違えない
isshinfunada
0
200
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
330
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
240
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
130
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
Chasing Engaging Ingredients in Design
codingconduct
0
250
A Tale of Four Properties
chriscoyier
163
24k
How to Ace a Technical Interview
jacobian
281
24k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
ラッコキーワード サービス紹介資料
rakko
1
4.2M
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
41k
RailsConf 2023
tenderlove
30
1.5k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
380
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Darren the Foodie - Storyboard
khoart
PRO
3
3.5k
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