46
Kubernetes The rising tide of system administration

OW2con'16 Keynote address: Kubernetes, the rising tide of systems administration

Embed Size (px)

Citation preview

KubernetesThe rising tide of system administration

@craigbox

Google Cloud Platform

LondresNouvelle-Zélande

Open has won

Google Cloud Platform 4

Google Cloud Platform 6

The Anatomy of a Large-Scale Hypertextual Web Search Engine

1996, Sergey Brin and Lawrence PageComputer Science Department, Stanford University, Stanford, CA 94305

Google Cloud Platform 8

Google Cloud Platform 9

Google is living a few years in the future, and sending the rest of us messages

Doug Cutting, Hadoop creator November 2013“ ”

More on that later

Real timeBabysitter

BatchGlobal Work Queue

Building what’s next 14

"Borg"

Google Cloud Platform 14

Google Cloud Platform 16

A datacenter is not a collection of computers,a datacenter is a computer.

Google Cloud Platform 17

What applications run on this computer?

Google Cloud Platform 18

Application containers

Lightweight Linux environment

Hermetically sealed,

deployable application

Introspectable, runnable artifact

Google Cloud Platform 19

Resource isolation

Predictability

Quality of Service

Batch vs. interactive

Containers at Google

Resource accounting

Efficient overcommit

Google Cloud Platform 20

Server administration

Flying the plane

Google Cloud Platform 21

Clusters/DevOps

Programming the autopilot

Google Cloud Platform 22

EfficiencyOptimized packing, better scaling

Performance Active environment tuning

Continuous integrationEasy and reliable

RobustnessActive monitoring, self healing

Google Cloud Platform 23

Containers at Google

We launch over2 Billioncontainers per week.

Google Cloud Platform 23

Google Cloud Platform 25

web browsers

BorgMaster

link shard

UI shardBorgMaster

link shard

UI shardBorgMaster

link shard

UI shardBorgMaster

link shard

UI shard

Cell

Scheduler

borgcfg web browsers

scheduler

Borglet Borglet Borglet Borglet

BorgMaster

link shard

read/UI shard

Config file

persistent store (Paxos)

Binary

Google Cloud Platform 26

Google Cloud Platform 27

Google Cloud Platform 28

Building what’s next 31

Distributed systems are hard

Distributed systems toolkitMaking reliable, scalable, agile distributed systems a CS101 exercise.

Google Cloud Platform 33

Greek for “Helmsman”:the root of the word “governor” and “cybernetic”

● Container orchestrator● Builds on Docker containers

○ also supporting other container technologies● Multiple cloud and bare-metal environments● Supports existing OSS apps

○ cannot require apps becoming cloud-native● Inspired and informed by Google’s

experiences and internal systems● 100% Open source, written in Go

Let users manage applications, not machines

κυβερνήτης

Google Cloud Platform 34

web browsers

BorgMaster

link shard

UI shardBorgMaster

link shard

UI shardBorgMaster

link shard

UI shardBorgMaster

link shard

UI shard

Cluster

Scheduler

kubectl web browsers

scheduler

kubelet kubelet kubelet kubelet

k8s Master

controller manager

API server

Config file

persistent store (etcd)

Binary

Google Cloud Platform 35

● Scheduling: Decide where my containers should run● Lifecycle and health: Keep my containers running despite

failures● Scaling: Make sets of containers bigger or smaller● Naming and discovery: Find where my containers are now● Load balancing: Distribute traffic across a set of containers● Storage volumes: Provide data to containers● Logging and monitoring: Track what’s happening with my

containers● Debugging and introspection: Enter or attach to containers● Identity and authorization: Control who can do things to my

containers

Kubernetes abstracts away:

Google Cloud Platform 36

● Kubernetes is one of the three legs of Cloud Native○ Takes in container packaged apps○ Emits microservices architectures

● Announced June 2014, in GA since June 2015● 1.4 is due out in 1 week!● Under half the code is now written by Google● Stewarded by the Cloud Native Compute Foundation™

○ A Linux Foundation Collaborative Project™

Kubernetes history

Google Cloud Platform 37

Kubernetes is stable

● Concrete ideas from 10 years of production experience○ and mistakes!

● v1 API; breaking changes held until v2● Alpha, Beta and GA tracks for new features● Thorough end-to-end testing● New work taking place outside of core

○ Volume & network plugins○ Custom controllers○ ThirdPartyResources

Google Cloud Platform 38

Kubernetes has a solid core

● Core primitives: ○ pods, services, volumes, labels, controllers, etc

● Continual improvement using these basic concepts○ Ingress: connect a load balancer to a Service○ ReplicaSet: fungible replicas○ DaemonSet: put a pod on every node○ Job: batch workloads○ ScheduledJob: run a Job at a certain time (cron)

Google Cloud Platform 39

Kubernetes has a healthy ecosystemSome examples:

● Cloud providers: Azure, VMware, Openstack, Rackspace, CenturyLink● Distros: CoreOS Tectonic, Mirantis Murano (OpenStack), RedHat

Atomic, Hyper.sh, VMTurbo● PaaS: RedHat OpenShift, Deis, Rancher, WSO2, Gondor/Kel, Apcera● CD: Fabric8, Shippable, CloudBees, Solano● Deployment: Kumoru, Redspread, Spinnaker● Package managers: Helm, KPM● Monitoring: Prometheus, Sysdig, Datadog● Networking: Weaveworks, Tigera, OpenContrail● Storage: NetApp, ClusterHQ● Appliances: Redapt, Diamante

Google Cloud Platform 40

Kubernetes has great momentum

laptop$ kubeadm --helpkubeadm: bootstrap a secure Kubernetes cluster easily.

/==========================================================\ | KUBEADM IS ALPHA, DO NOT USE IT FOR PRODUCTION CLUSTERS! | | | | But, please try it out! Give us feedback at: | | https://github.com/kubernetes/kubernetes/issues | | and at-mention @kubernetes/sig-cluster-lifecycle | \==========================================================/

Example usage:

Create a two-machine cluster with one master (which controls the cluster), and one node (where workloads, like pods and containers run).

On the first machine ==================== master# kubeadm init master Your token is: <token>

On the second machine ===================== node# kubeadm join node --token=<token> <ip-of-master>

Google Cloud Platform 44Google Cloud Platform 44

More efficient and happier operations teams

More reliable infrastructure and applications

More efficient usage of resources

Lower business risk

KubernetesThe rising tide of system administration

Google Cloud Platform 45

Google Cloud Platform 46

We basically need to re-use or re-create these elements against our light gray poly background. I think it would be great to make it an auto-build if Slides will do that.

Thank you@craigbox