Kubernetes
The rising tide of system administration
@craigbox
Google Cloud Platform
Londres
Nouvelle-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 Page
Computer 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 time
Babysitter
Batch
Global 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
Efficiency
Optimized packing, better scaling
Performance
Active environment tuning
Continuous integration
Easy and reliable
Robustness
Active monitoring, self healing
Google Cloud Platform 23
Containers at Google
We launch over
2 Billion
containers 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 toolkit
Making 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 ecosystem
Some 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 --help
kubeadm: 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
Kubernetes
The rising tide of system administration
Google Cloud Platform 45
Google Cloud Platform 46
Thank you
@craigbox

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

  • 1.
    Kubernetes The rising tideof system administration
  • 2.
  • 3.
  • 4.
  • 6.
  • 7.
    The Anatomy ofa Large-Scale Hypertextual Web Search Engine 1996, Sergey Brin and Lawrence Page Computer Science Department, Stanford University, Stanford, CA 94305
  • 8.
  • 9.
  • 10.
    Google is livinga few years in the future, and sending the rest of us messages Doug Cutting, Hadoop creator November 2013 “
  • 11.
  • 13.
  • 14.
    Building what’s next14 "Borg" Google Cloud Platform 14
  • 16.
    Google Cloud Platform16 A datacenter is not a collection of computers, a datacenter is a computer.
  • 17.
    Google Cloud Platform17 What applications run on this computer?
  • 18.
    Google Cloud Platform18 Application containers Lightweight Linux environment Hermetically sealed, deployable application Introspectable, runnable artifact
  • 19.
    Google Cloud Platform19 Resource isolation Predictability Quality of Service Batch vs. interactive Containers at Google Resource accounting Efficient overcommit
  • 20.
    Google Cloud Platform20 Server administration Flying the plane
  • 21.
    Google Cloud Platform21 Clusters/DevOps Programming the autopilot
  • 22.
    Google Cloud Platform22 Efficiency Optimized packing, better scaling Performance Active environment tuning Continuous integration Easy and reliable Robustness Active monitoring, self healing
  • 23.
    Google Cloud Platform23 Containers at Google We launch over 2 Billion containers per week. Google Cloud Platform 23
  • 25.
    Google Cloud Platform25 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
  • 26.
  • 27.
  • 28.
  • 31.
    Building what’s next31 Distributed systems are hard
  • 32.
    Distributed systems toolkit Makingreliable, scalable, agile distributed systems a CS101 exercise.
  • 33.
    Google Cloud Platform33 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 κυβερνήτης
  • 34.
    Google Cloud Platform34 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
  • 35.
    Google Cloud Platform35 ● 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:
  • 36.
    Google Cloud Platform36 ● 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
  • 37.
    Google Cloud Platform37 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
  • 38.
    Google Cloud Platform38 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)
  • 39.
    Google Cloud Platform39 Kubernetes has a healthy ecosystem Some 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
  • 40.
    Google Cloud Platform40 Kubernetes has great momentum
  • 42.
    laptop$ kubeadm --help kubeadm: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>
  • 44.
    Google Cloud Platform44Google Cloud Platform 44 More efficient and happier operations teams More reliable infrastructure and applications More efficient usage of resources Lower business risk
  • 45.
    Kubernetes The rising tideof system administration Google Cloud Platform 45
  • 46.
    Google Cloud Platform46 Thank you @craigbox