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
CoreOS Overview
Search
Brian Akins
May 20, 2015
Technology
2
160
CoreOS Overview
Brian Akins
May 20, 2015
Tweet
Share
More Decks by Brian Akins
See All by Brian Akins
Scaling For Planned Events
bakins
3
130
Large Scale Data Service as a Service
bakins
1
400
Growing Pains with Chef
bakins
0
73
Other Decks in Technology
See All in Technology
株式会社EventHub・エンジニア採用資料
eventhub
0
2.1k
cgroup v2 で何が変わったのか / TechFeed Experts Night #28
tenforward
2
160
回り回って効いてくる副次的効果としての技術広報/techpr
nishiuma
1
190
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
38k
シンプルなHITL機械学習と様々なタスクにおけるHITL機械学習
naohachi89
0
320
TypeScript の抽象構文木を用いた、数百を超える API の大規模リファクタリング戦略
yanaemon
6
1.3k
個人的、Kubernetes の最新注目機能! (2024年5月版) / TechFeed Experts Night#28 〜 コンテナ技術最前線
pfn
PRO
3
210
iThome2024 Wailing Wall of Enterprise Security
notsurprised
0
300
Google Cloudを組織(企業)で運用する時のベストプラクティス × 健康の環境分離戦略 #まるクラ勉強会
yasumuusan
0
170
Cloudflare WorkersがPythonに対応したので試してみた
miura55
0
190
RailsConf 2024 Keynote "Startups on Rails in 2024"
irinanazarova
0
810
Money-saving tips for the frugal serverless developer
theburningmonk
1
360
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Writing Fast Ruby
sferik
622
60k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
23
1.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
660
120k
Designing Experiences People Love
moore
136
23k
GitHub's CSS Performance
jonrohan
1025
450k
Facilitating Awesome Meetings
lara
43
5.6k
Design by the Numbers
sachag
274
18k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.7k
Designing for humans not robots
tammielis
247
25k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
Transcript
None
About Me Architect CoreOS @bakins github.com/bakins
None
Why build CoreOS?
run and isolate apps containers
what is it exactly? containers
libc python django app.py
$ /usr/bin/python run app.py
libc python django app.py
libc python django app.py example.com/myapp
$ container fetch example.com/myapp $ container run example.com/myapp
pid ns isolated pid 1
user ns isolated uid 0
network ns isolated netdev
mount ns isolated /
cgroups manage resources
cgroups count resources
cgroups limit resources
docker engine
None
google lmctfy cloud foundry garden mesos containers lxc systemd-nspawn
how are they created? containers
None
super-powers containers
App independence from the OS. System to get container to
the server. Resource isolation between apps.
reduced API contracts OS
kernel systemd etcd ssh docker python java nginx mysql openssl
app distro distro distro distro distro distro distr
None
python java nginx mysql openssl app distro distro distro distro
distro distro distr kernel systemd etcd ssh docker
python openssl-A app1 distro distro distro distro distro distro distr
java openssl-B app2 java openssl-B app3 kernel systemd etcd ssh docker
manual updates
automatic updates
automatic updates
atomic with rollback auto updates
None
None
super-powers OS
Opportunity for automatic updates. Consistent set of software across hosts.
Base OS independent from app.
Slight Detour cloud-init ignition toolbox
design for host failure clustering
None
/etc distributed
open source software sequentially consistent exposed via HTTP runtime reconfigurable
-X GET Get Wait -X PUT Put Create CAS -X
DELETE Delete CAD
Available
Available
Available
Unavailable
Available Leader Follower
Leader Follower Available
Leader Follower Temporarily Unavailable
Leader Follower Available
super-powers etcd
Share configuration data across hosts. Resilient to host failures. Designed
for consistency across hosts.
getting work to servers scheduling
You Scheduler API Scheduler Machine(s)
$ cat foo.service [Service] ExecStart=/usr/bin/sleep 500 $ fleetctl start foo.service
Job foo.service launched on e1cd2bcd.../172.17.8.101
while true { todo = diff(desState, curState) schedule(todo) }
while true { todo = diff(desState, curState) schedule(todo) }
while true { todo = diff(desState, curState) schedule(todo) }
while true { todo = diff(desState, curState) schedule(todo) }
fleet mesos kubernetes swarm job scheduling
locksmith coordination
super-powers scheduling
Think about app capacity first. Take advantage of compute resources.
Build for resilience to host failure.
skydns, discoverd, confd service discovery
magic proxies service discovery
overlay network
OS Containers Cluster Configuration Job Scheduling Service Discovery
None
Kubernetes Namespaces Containers Pods Replication Controllers Label Queries Services
None