What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed....

Post on 19-Jun-2020

3 views 0 download

Transcript of What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed....

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?