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
210
Manage the App on Kubernetes
philips
0
300
Production Backbone Monitoring Containerized Apps
philips
0
100
KubeCon EU 2017: Dancing on the Edge of a Volcano
philips
1
540
rkt - KubeCon EU keynote - 2017
philips
1
230
FOSDEM_Keynote_2017-_.pdf
philips
0
75
Tectonic Summit Day 2 Keynote
philips
0
300
Kubernetes: Simple to Manage Anywhere (self-hosted, Tectonic upgrade demo)
philips
0
230
KubeCon Keynote 2016- Distributed Systems Simplified on Kubernetes
philips
2
510
Other Decks in Programming
See All in Programming
Micro Frontends for Java Microservices - Utah JUG 2024
mraible
PRO
1
110
Let's learn code review
riofujimon
2
610
Ruby on Fails - effective error handling with Rails conventions
talyssonoc
0
160
Polars入門
daikikatsuragawa
1
190
Java 22 Overview
kishida
1
200
Goのエラースタックトレースの歴史と今後
sonatard
10
1.9k
Scalable Customer Journey Orchestration (CJO)
lewuathe
0
440
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
200
Balkan Ruby 2024 — How and why to run SQLite on Rails in production
fractaledmind
0
100
2 週間で Twitter Bot を作ってみた
contour_gara
0
790
新宿ダンジョンを可視化してみた
satoshi7190
3
420
Ruby GitHub Packages
bkuhlmann
0
650
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
The Pragmatic Product Professional
lauravandoore
26
5.8k
Automating Front-end Workflow
addyosmani
1357
200k
How to Ace a Technical Interview
jacobian
273
22k
Building Adaptive Systems
keathley
32
1.9k
We Have a Design System, Now What?
morganepeng
43
6.8k
Become a Pro
speakerdeck
PRO
13
4.6k
Designing for Performance
lara
601
67k
Code Review Best Practice
trishagee
56
15k
Designing with Data
zakiwarfel
96
4.8k
Fireside Chat
paigeccino
22
2.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
22
6.4k
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