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 @ GlueCon 2015
Search
Brandon Philips
May 21, 2015
Programming
170
2
Share
CoreOS @ GlueCon 2015
Brandon Philips
May 21, 2015
More Decks by Brandon Philips
See All by Brandon Philips
Node.js Workflow with Minikube and Skaffold
philips
0
280
Manage the App on Kubernetes
philips
0
360
Production Backbone Monitoring Containerized Apps
philips
0
210
KubeCon EU 2017: Dancing on the Edge of a Volcano
philips
1
830
rkt - KubeCon EU keynote - 2017
philips
1
300
FOSDEM_Keynote_2017-_.pdf
philips
0
160
Tectonic Summit Day 2 Keynote
philips
0
390
Kubernetes: Simple to Manage Anywhere (self-hosted, Tectonic upgrade demo)
philips
0
430
KubeCon Keynote 2016- Distributed Systems Simplified on Kubernetes
philips
2
580
Other Decks in Programming
See All in Programming
飯MCP
yusukebe
0
490
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
970
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.5k
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
230
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
130
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
180
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
6k
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
170
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
110
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
150
事業会社でのセキュリティ長期インターンについて
masachikaura
0
230
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
440
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
300
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
A designer walks into a library…
pauljervisheath
211
24k
How to Talk to Developers About Accessibility
jct
2
170
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.3k
Done Done
chrislema
186
16k
Raft: Consensus for Rubyists
vanstee
141
7.4k
HDC tutorial
michielstock
1
610
Navigating Weather and Climate Data
rabernat
0
160
Designing for Performance
lara
611
70k
Transcript
None
About Me CTO/CO-FOUNDER systems engineer @brandonphilips github.com/philips
What is CoreOS?
What is CoreOS?
None
None
What is CoreOS?
Why build CoreOS?
reduce API contracts minimal
kernel systemd etcd ssh docker python java nginx mysql openssl
app distro distro distro distro distro distro distr
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
CoreOS python openssl-A app1 distro distro distro distro distro distro
distr java openssl-B app2 java openssl-B app3
CoreOS container distro distro distro distro distro distro distr container
container
https://github.com/philips/hacks folder: system-api-tutorial APIs
Linux syscalls API
manual updates
automatic updates
automatic updates
atomic with rollback auto updates
None
None
omaha API
None
run and isolate apps containers
http registry image fetch
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
namespaces API
cgroups API
docker engine
REST API
None
dbus API
machines and clusters configuration
get into the cluster machine conf
#cloud-config ssh_authorized_keys: - ssh-rsa AAAAB3NzaC1yc2E… coreos: etcd: discovery: https://discovery.etcd.io/ba09c units:
- name: etcd2.service command: start - name: fleet.service command: start
#cloud-config ssh_authorized_keys: - ssh-rsa AAAAB3NzaC1yc2E… coreos: etcd: discovery: https://discovery.etcd.io/ba09c units:
- name: etcd2.service command: start - name: fleet.service command: start
#cloud-config ssh_authorized_keys: - ssh-rsa AAAAB3NzaC1yc2E… coreos: etcd: discovery: https://discovery.etcd.io/ba09c units:
- name: etcd2.service command: start - name: fleet.service command: start
REST hypercalls filesystems API
what is running cluster conf
k8s, discoverd, confd services
what should run cluster conf
locksmith coordination
fleet, k8s scheduling
etcd API
etcd
/etc distributed
Available
Available
Available
Unavailable
Available Leader Follower
Leader Follower Available
Leader Follower Temporarily Unavailable
Leader Follower Available
http+json API
getting work to servers scheduling
You Scheduler API Scheduler Machine(s)
$ kubectl run-container my-nginx --image=nginx --replicas=1 --port=80 $ kubectl get
pods POD IP my-nginx-97wt8 10.2.29.4
http+json API
$ cat nginx.service [Service] ExecStart=/usr/bin/rkt \ docker://nginx $ fleetctl start
nginx.service Job nginx.service launched on e1cd2bcd.../172.17.8.101
http+json API
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) }
the future
None