Top Banner
68

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

Jun 19, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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?