CoreOS intro

15
Timo Derstappen @teemow CoreOS Introduction

description

An introduction to CoreOS for the Docker Cologne Meetup.

Transcript of CoreOS intro

Page 1: CoreOS intro

Timo Derstappen@teemow

CoreOS Introduction

Page 2: CoreOS intro

CoreOS

● Minimal OS to host your containers● Automatic Updates● Cluster Management● Service Discovery

Page 3: CoreOS intro

CoreOS

● distributed containers

● configuration in etcd

Page 4: CoreOS intro

CoreOS 101

● minimal Gentoo● PXE, KVM, AWS, OpenStack, Vagrant● read-only rootfs (writable overlay)● cloud config● etcd● systemd / fleet● locksmith

Page 5: CoreOS intro

Cloud Config

● handles early initialization of a cloud instance

● configure fleet, etcd● create users● write files● etc...

Page 6: CoreOS intro

Etcd

● Highly available K/V store● Basis for

○ Configuration management○ Service Discovery

● Raft consensus algorithm● Discovery API● REST Interface

Page 7: CoreOS intro

Locksmith

● reboot strategies for CoreOS updates● uses etcd for distributed locks

Page 8: CoreOS intro

Fleet

● Define and launch containers● Fleet is systemd for the cluster● Utilizes etcd + systemd

Page 9: CoreOS intro

Unit file[Unit]Description=A Redis Server[Service]TimeoutStartSec=0EnvironmentFile=/etc/environmentEnvironment="IMAGE=teemow/redis"ExecStartPre=/usr/bin/docker pull $IMAGEExecStart=/bin/bash -c "exec /usr/bin/docker run --rm -p $COREOS_PRIVATE_IPV4::6379 --name %n $IMAGE"ExecStop=-/usr/bin/docker kill %n

Page 10: CoreOS intro

Launch a service# startfleetctl --tunnel my.coreos-cluster.com start redis.service# statusfleetctl --tunnel my.coreos-cluster.com list-unitsfleetctl --tunnel my.coreos-cluster.com status redis.servicefleetctl --tunnel my.coreos-cluster.com journal redis.service# stopfleetctl --tunnel my.coreos-cluster.com stop redis.servicefleetctl --tunnel my.coreos-cluster.com destroy redis.service

Page 11: CoreOS intro

CoreOS

● distributed containers

● configuration in etcd

Page 12: CoreOS intro

Sidekick

● Keep configuration out of your app

Page 13: CoreOS intro

Ambassador

● Reverse proxy for your service

● Keep service discovery out of your app

Page 14: CoreOS intro

CoreOS

● Great foundation to create flexible distributed infrastructures

● Unix philosophy

Page 15: CoreOS intro

Lessons Learned

● 150+ Instances on AWS● Micro Services● Polyglot Persistence● DevOps