coreos @codetalks hamburg

Post on 02-Dec-2014

444 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Introduction to CoreOS

TRANSCRIPT

Introduction to CoreOS

Timo Derstappen@teemow

Simple service orchestration, built for developers.

Based in Cologne, Germany.Ten terrific folks, and hiring!

http://giantswarm.io/

What is CoreOS?

CoreOS enables warehouse-scale computing on top of a minimal, modern operating system.A new Linux Distribution to provide features needed to run modern infrastructure stacks.

Minimal Linux

Features

● Automatic Updates● Docker Containers● Cluster management● Service Discovery

Linux Basis

● Based on Gentoo● systemd● btrfs● Images for PXE,

OpenStack, AWS, GCE, Vagrant

“Immutable” System

● Read-only rootfs● Writeable overlay on /etc

No classic package manager

● ChromeOS inspired update engine● Atomic Updates● Rollbacks● Using Docker to distribute software

CoreOS own tools

● Etcd● Locksmith● Cloud-config● Flannel● Fleet

https://github.com/coreos

EtcdA highly-available key value store for shared configuration and service discovery.

Etcd

● Basis for> Configuration management> Service Discovery

● REST Interface● Raft consensus algorithm

http://raftconsensus.github.io/

Etcd Cluster

Discovery API

$> curl https://discovery.etcd.io/new

https://discovery.etcd.io/463c1435f9f63c952e0899b1f459c0fe

$> curl -s https://discovery.etcd.io/463c1435f9f63c952e0899b1f459c0fe | jq ".node.nodes[].value"

"http://172.31.19.1:7001"

"http://172.31.19.0:7001"

"http://172.31.18.255:7001"

LocksmithReboot manager for the CoreOS update engine.

Locksmith

● Reboot strategies for CoreOS updates● Uses etcd for distributed locks● Alpha, Beta, Stable channels

Cloud ConfigCustomize a CoreOS machine through user-data.

Cloud Config

● Initialization of your instances● Configure etcd, fleet, locksmith● YAML file● eg. EC2 user-data, Autoscaler launch-

config

Configure your cluster

#cloud-config

coreos:

update:

reboot-strategy: etcd-lock

Configure your cluster

#cloud-config

coreos:

update:

reboot-strategy: etcd-lock

etcd:

discovery: https://discovery.etcd.io/<token>

Configure your cluster

#cloud-config

coreos:

update:

reboot-strategy: etcd-lock

etcd:

discovery: https://discovery.etcd.io/<token>

users:

- name: teemow

coreos-ssh-import-github: teemow

FlannelOverlay networks backed by etcd.

Cloud overlay network

● One subnet per machine● Get rid of docker port mapping● Let containers talk to each other via IP

addresses

Backends

● Encapsulate packets in UDP● VXLAN implementation coming

FleetSystemd for the cluster

Fleet

● CLI and API to start your containers● Uses etcd and systemd

Fleet deployment

Fleet Scheduler

● Relatively simple> By meta data> Same machine/exclusion

● Resolve service dependencies!● More to come

> Resource management (CPU, memory etc.)

Unit file

[Unit]

Description=A Redis Server

[Service]

TimeoutStartSec=0

ExecStartPre=/usr/bin/docker pull teemow/redis

ExecStart=/usr/bin/docker run --rm -p 6379 --name %n teemow/redis

ExecStop=/usr/bin/docker stop %n

Manage a service

$> fleetctl start redis.service

$> fleetctl list-units

$> fleetctl status redis.service

$> fleetctl journal redis.service

$> fleetctl stop redis.service

$> fleetctl destroy redis.service

Service Discovery

Three-Tier Application

● Load Balancer● App● Database

Sidekick

Keep configuration out of your app

Ambassador

Reverse proxy for your serviceKeep service discovery out of your app

Using CoreOS

CoreOS

● Great foundation to create flexible distributed infrastructures

● Unix philosophy

Kubernetes

● Google Container Orchestration

● Runs on top of CoreOS

cAdvisor

● Monitoring for your containers

● Collects, aggregates and processes metrics

● InfluxDB Backend● Monitoring of

clusters with Heapster

Deis

Heroku-like Open Source PaaS

Panamax

● Web interface to start multi container apps● App Templates on Github● Open Source project from CenturyLink

Labs

We ♥ CoreOS

Docker Cologne - CoreOS Meetup

19:00, 14th OctoberStartplatz

Brandon Philips, CTO of CoreOSLuke Marsden, CTO of Flocker

There is a Meetup in Cologne

Sign up for theGiant Swarm private Beta

Request Invite

http://giantswarm.io/

Thanks for listening!Reach out:Timo Derstappen@teemow@giantswarm

top related