craig box - google kubernetes at #doxlon

33
Kubernetes Google's cluster computer and you Craig Box Solutions Engineer

Upload: dataloopio

Post on 28-Nov-2014

713 views

Category:

Technology


3 download

DESCRIPTION

Video: http://youtu.be/tRpJQAcLjuc A talk about Google Kubernetes! Which is a "an open source implementation of container cluster management". Written in Go, works nicely with Docker and is extremely cool. Never heard of it? This is cutting edge technology that's poised to transform the way we manage deployments, resource allocation and just generally make the world a better place. To get the most out of the talk check out this Google IO presentation ahead of time: https://www.youtube.com/watch?v=tsk0pWf4ipw DevOps Exchange London Meetup: http://www.meetup.com/DevOps-Exchange-London

TRANSCRIPT

Page 1: Craig Box - Google Kubernetes at #DOXLON

KubernetesGoogle's cluster computer and you

Craig BoxSolutions Engineer

Page 2: Craig Box - Google Kubernetes at #DOXLON

For the past 15 years, Google has been building out the world’s fastest, most powerful, highest quality cloud infrastructure on the planet.

Images by Connie Zhou

Page 3: Craig Box - Google Kubernetes at #DOXLON

• Lightweight Linux environment

• Hermetically sealed, deployable application

• Introspectable, runnable artifact

• Recently popularized by Docker

Containers

Page 4: Craig Box - Google Kubernetes at #DOXLON

Resource isolation

Predictability

Quality of Service

Batch vs. interactive

Containers at Google

Resource accounting

Efficient overcommit

Page 5: Craig Box - Google Kubernetes at #DOXLON

Everything at Google runs in a container

Page 6: Craig Box - Google Kubernetes at #DOXLON

We start over 2 billion containers a week

Page 7: Craig Box - Google Kubernetes at #DOXLON

Managed Base OS

Node Container Manager• Common services: log rotation, watchdog restarting

Containers:• System container for shared daemons - statically defined• Dynamically scheduled containers

Cluster Scheduler• Schedules work (tasks) onto nodes• Work specified based on intents• Surfaces data about running tasks, restarts, etc. Managed Base OS

Node Container Manager

System Container

ScheduledContainers

Cluster Scheduler

The Managed Container Stack at Google

Page 8: Craig Box - Google Kubernetes at #DOXLON

Imperative: "Start this container on that server"

Declarative: "Run 100 copies of this container with a target of <= 2 tasks down at any time"

over ImperativeDeclarative

Pro:• Repeatable• "Set it and forget it"• Eventually consistent• Easily updatable

Con:• Tracing action/reaction can be difficult. "I

made a change, is it done?"

Page 9: Craig Box - Google Kubernetes at #DOXLON

2004 2006 2013 2014

Limitedisolation

ReleasedCGroups

ReleasedLMCTFY

cAdvisorKubernetes

Google and containers

Page 10: Craig Box - Google Kubernetes at #DOXLON

Google:• Host bind mounts• Binary and deps built together• Signed static binaries• Interfaces to Container Manager:

Standard locations for logs, API

Docker image and environment:• More hermetic: entire chroot

is explicitly included• Less guaranteed file structure• Leverages OS distributions and package

managers

Image: "Untitled" 802 CC-BY-2.0 http://www.flickr.com/photos/802/1510186897

KubernetesPackaging containers

Page 11: Craig Box - Google Kubernetes at #DOXLON

Why do developers care?

Repeatable, runnable artifact Loosely coupledStatic application

environment

Images by Connie Zhou

• Portability

• Develop here, run there

• Pick your cloud solely on its merits

• Easier to build and manage

• Compose applications from micro-services

• Mix in and extend third party services

• Reliable deployments

• No stress deployment and update

Page 12: Craig Box - Google Kubernetes at #DOXLON

Highly automatable = path to active management

• Efficiency: optimized packing, better scaling

• Performance: active environment tuning

• Continuous integration: easy and reliable

• Robustness: active monitoring, self healing

Why do developers care?

Page 13: Craig Box - Google Kubernetes at #DOXLON

Node container management

Managed Base OS

Node Container Manager

Scheduled Containers

Cluster Scheduler

Container Optimized VM Image

Standardized Declarative Container Manifest

Container health monitoring and restart

Page 14: Craig Box - Google Kubernetes at #DOXLON

User Experience

Container Env.

User App

Host GCE VM

Google Provided

OS

monitoring agent

logging agent

init / systemd sshd

docker

Page 15: Craig Box - Google Kubernetes at #DOXLON

Managed Base OS

Node Container Manager

Scheduled Containers

Cluster SchedulerSchedule containers across machines

Replication and resizing

Service naming and discovery

Cluster scheduling

Page 16: Craig Box - Google Kubernetes at #DOXLON
Page 17: Craig Box - Google Kubernetes at #DOXLON

Kubernetes

• Lean, extensible & portable

• Apache 2.0 licensed

• Runs anywhere

• Manage applications, not machines

• Written in Go

Page 18: Craig Box - Google Kubernetes at #DOXLON

Kubernetes

KubernetesMaster/Scheduler

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Page 19: Craig Box - Google Kubernetes at #DOXLON

Log Roller

Web Server

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

KubernetesMaster/Scheduler

Pods

Page 20: Craig Box - Google Kubernetes at #DOXLON

Log RollerFE

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

KubernetesMaster/Scheduler

Pods

Page 21: Craig Box - Google Kubernetes at #DOXLON

FE

FE

FE

FE

FE

FE

BE

BE

BE BEBE

BE

BEBE

BE

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

Pod Overflow

Page 22: Craig Box - Google Kubernetes at #DOXLON

labels: role: frontend

FE

FE

FE

FE

FE

FE

BE

BE

BE BEBE

BE

BEBE

BE

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

Labels

Page 23: Craig Box - Google Kubernetes at #DOXLON

labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

FE

FE

FE

FE

FE

FE

BE

BE

BE BEBE

BE

BEBE

BE

Labels

Page 24: Craig Box - Google Kubernetes at #DOXLON

FE FE FE FE

replicas: 4template: ...labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

Replica Controller

Page 25: Craig Box - Google Kubernetes at #DOXLON

FE

replicas: 1template: ...labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

Replica Controller

Page 26: Craig Box - Google Kubernetes at #DOXLON

FE FE FE

replicas: 3template: ...labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

Replica Controller

Page 27: Craig Box - Google Kubernetes at #DOXLON

id: backend-serviceport: 9000labels: role: backend stage: production

Backend Service

BE BE BE BE

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

Service

Page 28: Craig Box - Google Kubernetes at #DOXLON

Demo

Page 29: Craig Box - Google Kubernetes at #DOXLON
Page 30: Craig Box - Google Kubernetes at #DOXLON

• Red Hat• CoreOS• Mesosphere• IBM• Microsoft Azure• VMWare• Docker• SaltStack

Partners

Page 31: Craig Box - Google Kubernetes at #DOXLON

• >3600 stars on GitHub

• >100 authors

http://kubernetes.io/

Kubernetes

Page 32: Craig Box - Google Kubernetes at #DOXLON

$500 in Cloud Platform credit to launch your idea!

Build. Store. Analyze.On the same infrastructure

that powers Google.Start building!

Click ‘Apply Now’ and complete the

application with promo code: devops-con

Starter Pack

Offer Description

1

2

3

Go to http://cloud.google.com/starterpack

Page 33: Craig Box - Google Kubernetes at #DOXLON

cloud.google.com

Images by Connie Zhou