what is coreos? - usenix · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed....

68

Upload: others

Post on 19-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable
Page 2: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

About MeCTO/CO-FOUNDERsystems engineer

@brandonphilipsgithub.com/philips

Page 3: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

What is CoreOS?

Page 4: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

What is CoreOS?

Page 5: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable
Page 6: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable
Page 7: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

Why build CoreOS?

Page 8: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

reduce API contracts

minimal

Page 9: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

kernelsystemdetcdsshdocker

pythonjavanginxmysqlopenssl

app

dis

tro

dist

ro d

istr

o di

stro

dis

tro

dist

ro d

istr

o di

stro

Page 10: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

pythonjavanginxmysqlopenssl

app

dis

tro

dist

ro d

istr

o di

stro

dis

tro

dist

ro d

istr

o di

stro

kernelsystemdetcdsshdocker

Page 11: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

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

Page 12: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

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

Page 13: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

CoreOS

container

dis

tro

dist

ro d

istr

o di

stro

dis

tro

dist

ro d

istr

o di

stro

container

container

Page 14: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

manual updates

Page 15: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

automatic updates

Page 16: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

automatic updates

Page 17: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

atomic with rollback

auto updates

Page 18: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable
Page 19: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable
Page 20: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable
Page 21: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

run and isolate apps

containers

Page 22: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

pid nsisolated pid 1

Page 23: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

user nsisolated uid 0

Page 24: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

network nsisolated netdev

Page 25: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

mount nsisolated /

Page 26: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

cgroupsmanage resources

Page 27: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

cgroupscount resources

Page 28: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable
Page 29: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

cgroupslimit resources

Page 30: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

docker engine

Page 31: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable
Page 32: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

machines and clusters

configuration

Page 33: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

get into the cluster

machine conf

Page 34: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

#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

Page 35: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

#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

Page 36: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

#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

Page 37: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

#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

Page 38: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

what is running

cluster conf

Page 39: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

skydns, discoverd, confd

services

Page 40: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

what should run

cluster conf

Page 41: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

locksmith

coordination

Page 42: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

fleet, kubernetes

scheduling

Page 43: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

etcd

Page 44: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

/etcdistributed

Page 45: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

open source softwarehighly available and reliablesequentially consistentwatchableexposed via HTTPruntime reconfigurable

Page 46: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

-X GETGet Wait

-X PUTPut Create CAS

-X DELETEDelete CAD

Page 47: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

Available

Page 48: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

Available

Page 49: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

Available

Page 50: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

Unavailable

Page 51: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

Available

Leader

Follower

Page 52: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

Leader

Follower

Available

Page 53: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

Leader

Follower

Temporarily Unavailable

Page 54: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

Leader

Follower

Available

Page 55: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

DEMO?

Page 56: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

getting work to servers

scheduling

Page 57: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

You

Scheduler API

Scheduler

Machine(s)

Page 58: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

$ cat foo.service[Service]ExecStart=/usr/bin/sleep 500

$ fleetctl start foo.serviceJob foo.service launched on e1cd2bcd.../172.17.8.101

Page 59: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

while true { todo = diff(desState, curState) schedule(todo)}

Page 60: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

while true { todo = diff(desState, curState) schedule(todo)}

Page 61: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

while true { todo = diff(desState, curState) schedule(todo)}

Page 62: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

while true { todo = diff(desState, curState) schedule(todo)}

Page 63: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

Why use CoreOS?

Page 64: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

is it ready?stable released

Page 65: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

lots of work todo

the future

Page 66: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

CoreOS Meetup TonightRSVP on Meetup.com6pm - 9pm tonight

Page 67: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable
Page 68: What is CoreOS? - USENIX · 2019-12-18 · fleet, kubernetes scheduling. etcd /etc distributed. open source software highly available and reliable sequentially consistent watchable

DEMO?