About MeCTO/CO-FOUNDERsystems engineer
@brandonphilipsgithub.com/philips
What is CoreOS?
What is CoreOS?
Why build CoreOS?
reduce API contracts
minimal
kernelsystemdetcdsshdocker
pythonjavanginxmysqlopenssl
app
dis
tro
dist
ro d
istr
o di
stro
dis
tro
dist
ro d
istr
o di
stro
pythonjavanginxmysqlopenssl
app
dis
tro
dist
ro d
istr
o di
stro
dis
tro
dist
ro d
istr
o di
stro
kernelsystemdetcdsshdocker
pythonopenssl-A app1
dis
tro
dist
ro d
istr
o di
stro
dis
tro
dist
ro d
istr
o di
stro
javaopenssl-B app2
javaopenssl-B app3
kernelsystemdetcdsshdocker
CoreOS
pythonopenssl-A app1
dis
tro
dist
ro d
istr
o di
stro
dis
tro
dist
ro d
istr
o di
stro
javaopenssl-B app2
javaopenssl-B app3
CoreOS
container
dis
tro
dist
ro d
istr
o di
stro
dis
tro
dist
ro d
istr
o di
stro
container
container
manual updates
automatic updates
automatic updates
atomic with rollback
auto updates
run and isolate apps
containers
pid nsisolated pid 1
user nsisolated uid 0
network nsisolated netdev
mount nsisolated /
cgroupsmanage resources
cgroupscount resources
cgroupslimit resources
docker engine
machines and clusters
configuration
get into the cluster
machine conf
#cloud-config
users: - name: core coreos-ssh-import-github: philips
coreos: etcd: discovery: https://discovery.etcd.io/ba09c units: - name: etcd.service command: start - name: fleet.service command: start
#cloud-config
users: - name: core coreos-ssh-import-github: philips
coreos: etcd: discovery: https://discovery.etcd.io/ba09c units: - name: etcd.service command: start - name: fleet.service command: start
#cloud-config
users: - name: core coreos-ssh-import-github: philips
coreos: etcd: discovery: https://discovery.etcd.io/ba09c units: - name: etcd.service command: start - name: fleet.service command: start
#cloud-config
users: - name: core coreos-ssh-import-github: philips
coreos: etcd: discovery: https://discovery.etcd.io/ba09c units: - name: etcd.service command: start - name: fleet.service command: start
what is running
cluster conf
skydns, discoverd, confd
services
what should run
cluster conf
locksmith
coordination
fleet, kubernetes
scheduling
etcd
/etcdistributed
open source softwarehighly available and reliablesequentially consistentwatchableexposed via HTTPruntime reconfigurable
-X GETGet Wait
-X PUTPut Create CAS
-X DELETEDelete CAD
Available
Available
Available
Unavailable
Available
Leader
Follower
Leader
Follower
Available
Leader
Follower
Temporarily Unavailable
Leader
Follower
Available
DEMO?
getting work to servers
scheduling
You
Scheduler API
Scheduler
Machine(s)
$ cat foo.service[Service]ExecStart=/usr/bin/sleep 500
$ fleetctl start foo.serviceJob 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)}
Why use CoreOS?
is it ready?stable released
lots of work todo
the future
CoreOS Meetup TonightRSVP on Meetup.com6pm - 9pm tonight
DEMO?