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
2
170
CoreOS @ GlueCon 2015
Brandon Philips
May 21, 2015
Tweet
Share
More Decks by Brandon Philips
See All by Brandon Philips
Node.js Workflow with Minikube and Skaffold
philips
0
230
Manage the App on Kubernetes
philips
0
310
Production Backbone Monitoring Containerized Apps
philips
0
130
KubeCon EU 2017: Dancing on the Edge of a Volcano
philips
1
640
rkt - KubeCon EU keynote - 2017
philips
1
240
FOSDEM_Keynote_2017-_.pdf
philips
0
97
Tectonic Summit Day 2 Keynote
philips
0
310
Kubernetes: Simple to Manage Anywhere (self-hosted, Tectonic upgrade demo)
philips
0
320
KubeCon Keynote 2016- Distributed Systems Simplified on Kubernetes
philips
2
530
Other Decks in Programming
See All in Programming
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
250
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
5
960
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
5
1.1k
Jakarta EE meets AI
ivargrimstad
0
300
Visual StudioのGitHub Copilotでいろいろやってみる
tomokusaba
1
210
データベースのオペレーターであるCloudNativePGがStatefulSetを使わない理由に迫る
nnaka2992
0
230
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
150
From the Wild into the Clouds - Laravel Meetup Talk
neverything
0
130
Domain-Driven Transformation
hschwentner
2
1.9k
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
140
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
150
Honoのおもしろいミドルウェアをみてみよう
yusukebe
1
220
Featured
See All Featured
How GitHub (no longer) Works
holman
314
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
Why Our Code Smells
bkeepers
PRO
336
57k
Code Review Best Practice
trishagee
67
18k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Writing Fast Ruby
sferik
628
61k
Docker and Python
trallard
44
3.3k
Visualization
eitanlees
146
15k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
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