SlideShare a Scribd company logo
@kitmerker
Containers & Kubernetes
Kit Merker / kitm@google.com / @kitmerker
Product Manager
Google Container Engine, Google Container Registry, Kubernetes
@kitmerker
build and deploy vm images
• Curated runtimes
• Rich services
• Auto-everything
• … just add code
● Managed collections
● Declarative + Dynamic
Compute as a Continuum
PlatformCluster
• Basic atom
• Run anything
VM
More agility
More Flexibility
build and deploy containers build and deploy apps
@kitmerker
Containers are like VMs, but less overhead
Physical Processor
Virtual Processor
Operating System
Libraries
User Code
Physical Processor
Virtual Processor
Operating System
Libraries
User Code
Private
Copy
Shared
Private
Copy
Shared
Virtual Machines Containers
@kitmerker
Container Cluster Orchestration
Package & run your app as
containers
Find existing container
images from others
Deploy your container on
your laptop, server, or
cloud
Container Cluster
Orchestration Engine
Declarative management
hides complexity
Open Source, Runs Anywhere
Cluster-Oriented Container
Service
Full Google Cloud Platform
Infrastructure
Powered by Kubernetes
Kubernetes Container Engine
@kitmerker
But what ARE they?
Lightweight VMs
• no guest OS, lower overhead than VMs, but no virtualization hardware
Better packages
• no DLL hell
Hermetically sealed static binaries - portable!
• no external dependencies
Provide Isolation (from each other and from the host)
• Resources (CPU, RAM, Disk, etc.)
• Users
• Filesystem
• Network
@kitmerker
How?
Implemented by a number of (unrelated) Linux APIs:
• cgroups: Restrict resources a process can consume
• CPU, memory, disk IO, ...
• namespaces: Change a process’s view of the system
• Network interfaces, PIDs, users, mounts, ...
• capabilities: Limits what a user can do
• mount, kill, chown, ...
• chroots: Determines what parts of the filesystem a user can see
@kitmerker
Everything at Google runs in
containers:
• Gmail, Web Search, Maps, ...
• MapReduce, batch, ...
• GFS, Colossus, ...
• Even GCE itself: VMs in containers
@kitmerker
Everything at Google runs in
containers:
• Gmail, Web Search, Maps, ...
• MapReduce, batch, ...
• GFS, Colossus, ...
• Even GCE itself: VMs in containers
We launch over 2 billion
containers per week.
@kitmerker
Why containers?
• Performance
• Repeatability
• Isolation
• Quality of service
• Accounting
• Visibility
• Portability
A fundamentally different way of
managing applications
Images by Connie Zhou
@kitmerker
Docker
Source: Google Trends
@kitmerker
But what IS Docker?
An implementation of the container idea
A package format
An ecosystem
A company
An open-source juggernaut
A phenomenon
Hoorah! The world is starting to adopt containers!
@kitmerker
Now that we have containers...
Isolation: Keep jobs from interfering with each other
Scheduling: Where should my job be run?
Lifecycle: Keep my job running
Discovery: Where is my job now?
Constituency: Who is part of my job?
Scale-up: Making my jobs bigger or smaller
Auth{n,z}: Who can do things to my job?
Monitoring: What’s happening with my job?
Health: How is my job feeling?
@kitmerker
Enter Kubernetes
Greek for “Helmsman”; also the root of
the word “Governor”
• Container orchestrator
• Runs Docker containers
• Supports multiple cloud and bare-metal
environments
• Inspired and informed by Google’s
experiences and internal systems
• Open source, written in Go
Manage applications, not machines
@kitmerker
@kitmerker
keep your apps running
Demo: a taste of Kubernetes
@kitmerker
Design principles
Declarative > imperative: State your desired results, let the system actuate
Control loops: Observe, rectify, repeat
Simple > Complex: Try to do as little as possible
Modularity: Components, interfaces, & plugins
Legacy compatible: Requiring apps to change is a non-starter
Network-centric: IP addresses are cheap
No grouping: Labels are the only groups
Bulk > hand-crafted: Manage your workload in bulk
Open > Closed: Open Source, standards, REST, JSON, etc.
@kitmerker
Primary concepts
Container: A sealed application package (Docker)
Pod: A small group of tightly coupled Containers
example: content syncer & web server
Controller: A loop that drives current state towards desired state
example: replication controller
Service: A set of running pods that work together
example: load-balanced backends
Labels: Identifying metadata attached to other objects
example: phase=canary vs. phase=prod
Selector: A query against labels, producing a set result
example: all pods where label phase == prod
@kitmerker
Pods
@kitmerker
Pods
@kitmerker
Pods
Small group of containers & volumes
Tightly coupled
• same node
The atom of cluster scheduling &
placement
Shared namespace
• share IP address & localhost
Ephemeral
• can die and be replaced
Example: data puller & web server
Pod
File Puller Web Server
Volume
Consumers
Content
Manager
@kitmerker
Pod networking
Pod IPs are routable
• Docker default is private IP
Pods can reach each other without NAT
• even across nodes
No brokering of port numbers
This is a fundamental requirement
• several SDN solutions
@kitmerker
10.1.1.0/24
10.1.1.93
10.1.1.113
Pod networking
10.1.2.0/24
10.1.2.118
10.1.3.0/24
10.1.3.129
@kitmerker
Labels
Arbitrary metadata
Attached to any API object
Generally represent identity
Queryable by selectors
• think SQL ‘select ... where ...’
The only grouping mechanism
• pods under a ReplicationController
• pods in a Service
• capabilities of a node (constraints)
Example: “phase: canary”
App: Nifty
Phase: Dev
Role: FE
App: Nifty
Phase: Dev
Role: BE
App: Nifty
Phase: Test
Role: FE
App: Nifty
Phase: Test
Role: BE
@kitmerker
Selectors
App: Nifty
Phase: Dev
Role: FE
App: Nifty
Phase: Test
Role: FE
App: Nifty
Phase: Dev
Role: BE
App: Nifty
Phase: Test
Role: BE
@kitmerker
App == NiftyApp: Nifty
Phase: Dev
Role: FE
App: Nifty
Phase: Test
Role: FE
App: Nifty
Phase: Dev
Role: BE
App: Nifty
Phase: Test
Role: BE
Selectors
@kitmerker
App == Nifty
Role == FE
App: Nifty
Phase: Dev
Role: FE
App: Nifty
Phase: Test
Role: FE
App: Nifty
Phase: Dev
Role: BE
App: Nifty
Phase: Test
Role: BE
Selectors
@kitmerker
App == Nifty
Role == BE
App: Nifty
Phase: Dev
Role: FE
App: Nifty
Phase: Test
Role: FE
App: Nifty
Phase: Dev
Role: BE
App: Nifty
Phase: Test
Role: BE
Selectors
@kitmerker
App == Nifty
Phase == Dev
App: Nifty
Phase: Dev
Role: FE
App: Nifty
Phase: Test
Role: FE
App: Nifty
Phase: Dev
Role: BE
App: Nifty
Phase: Test
Role: BE
Selectors
@kitmerker
App == Nifty
Phase == Test
App: Nifty
Phase: Dev
Role: FE
App: Nifty
Phase: Test
Role: FE
App: Nifty
Phase: Dev
Role: BE
App: Nifty
Phase: Test
Role: BE
Selectors
@kitmerker
Control loops
Drive current state -> desired state
Act independently
APIs - no shortcuts or back doors
Observed state is truth
Recurring pattern in the system
Example: ReplicationController
observe
diff
act
@kitmerker
Replication Controllers
Replication Controller
- Name = “nifty-rc”
- Selector = {“App”: “Nifty”,
"Phase":
"Dev",
"Role":
"FE"}
- PodTemplate = { ... }
- NumReplicas = 4
@kitmerker
Replication Controllers
node 1
f0118
node 3
node 4node 2
d9376
b0111
a1209
Replication Controller
- Desired = 4
- Current = 4
@kitmerker
Replication Controllers
node 1
f0118
node 3
node 4node 2
Replication Controller
- Desired = 4
- Current = 4
d9376
b0111
a1209
@kitmerker
Replication Controllers
node 1
f0118
node 3
node 4
Replication Controller
- Desired = 4
- Current = 3
b0111
a1209
@kitmerker
Replication Controllers
node 1
f0118
node 3
node 4
Replication Controller
- Desired = 4
- Current = 4
b0111
a1209
c9bad
@kitmerker
scaling up & down
Demo: more Kubernetes
@kitmerker
Services
A group of pods that act as one == Service
• group == selector
Defines access policy
• only “load balanced” for now
Gets a stable virtual IP and port
• called the service portal
• also a DNS name
VIP is captured by kube-proxy
• watches the service constituency
• updates when backends change
Hide complexity - ideal for non-native apps
Portal (VIP)
Client
@kitmerker
Services
10.0.0.1 : 9376
Client
kube-proxy
Service
- Name = “nifty-svc”
- Selector = {“App”: “Nifty”}
- Port = 9376
- ContainerPort = 8080
Portal IP is assigned
iptables
DNAT
TCP / UDP
apiserver
watch
10.240.2.2 : 808010.240.1.1 : 8080 10.240.3.3 : 8080
TCP / UDP
@kitmerker
Kubernetes Status & plans
Open sourced in June, 2014
• won the BlackDuck “rookie of the year” award
• so did cAdvisor :)
Google launched Google Container Engine (GKE)
• hosted Kubernetes
• https://cloud.google.com/container-engine/
Roadmap:
• https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/roadmap.md
Driving towards a 1.0 release in O(months)
• O(100) nodes, O(50) pods per node
• focus on web-like app serving use-cases
@kitmerker
The Goal: Shake things up
Containers is a new way of working
Requires new concepts and new tools
Google has a lot of experience...
...but we are listening to the users
Workload portability is important!
@kitmerker
Google Container Registry
• Securely store your container images
• Access Control / Image Encryption
• Inexpensive and scalable Google Cloud Storage
• Fast & Reliable Deployment
Try it out: cloud.google.com/tools/container-registry/
@kitmerker
Push & Pull
Demo: Google Container Registry
@kitmerker
Kubernetes is Open Source
We want your help!
http://kubernetes.io
https://github.com/GoogleCloudPlatform/kubernetes
irc.freenode.net #google-containers
@kubernetesio
@kitmerker
Questions?
Images by Connie Zhou
http://kubernetes.io

More Related Content

PDF
Montreal Linux MeetUp - OpenStack Overview (2017.10.03)
PDF
Resilient microservices with Kubernetes - Mete Atamel
PPTX
Hadoop on Docker
PPTX
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
PPSX
Containers Docker Kind Kubernetes Istio
PDF
Containers and Kubernetes
PDF
Why kubernetes for Serverless (FaaS)
PPTX
Cloud Foundry and OpenStack - A Marriage Made in Heaven! (Cloud Foundry Summi...
Montreal Linux MeetUp - OpenStack Overview (2017.10.03)
Resilient microservices with Kubernetes - Mete Atamel
Hadoop on Docker
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
Containers Docker Kind Kubernetes Istio
Containers and Kubernetes
Why kubernetes for Serverless (FaaS)
Cloud Foundry and OpenStack - A Marriage Made in Heaven! (Cloud Foundry Summi...

What's hot (20)

PPTX
Micro services vs hadoop
PDF
OpenStack 101 update
PDF
Introduction to kubernetes
PDF
Big data and Kubernetes
PDF
State of the Stack v4 - OpenStack in All It's Glory
PPT
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
PDF
Google Cloud Platform Kubernetes Workshop IYTE
PPTX
Serverless and Servicefull Applications - Where Microservices complements Ser...
PDF
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
PDF
VNG/IRD - Cloud computing & Openstack discussion 3/5/2014
PDF
OpenStack Architected Like AWS (and GCP)
PPTX
Episode 3: Kubernetes and Big Data Services
PPTX
An Intrudction to OpenStack 2017
PDF
Designing OpenStack Architectures
PPTX
Cloud computing and OpenStack
PDF
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
PDF
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
PDF
NoSQL - Vital Open Source Ingredient for Modern Success
PDF
Bring Your Own Container: Using Docker Images In Production
PDF
Oracle on kubernetes 101 - Dec/2021
Micro services vs hadoop
OpenStack 101 update
Introduction to kubernetes
Big data and Kubernetes
State of the Stack v4 - OpenStack in All It's Glory
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Google Cloud Platform Kubernetes Workshop IYTE
Serverless and Servicefull Applications - Where Microservices complements Ser...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
VNG/IRD - Cloud computing & Openstack discussion 3/5/2014
OpenStack Architected Like AWS (and GCP)
Episode 3: Kubernetes and Big Data Services
An Intrudction to OpenStack 2017
Designing OpenStack Architectures
Cloud computing and OpenStack
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
NoSQL - Vital Open Source Ingredient for Modern Success
Bring Your Own Container: Using Docker Images In Production
Oracle on kubernetes 101 - Dec/2021
Ad

Viewers also liked (6)

PDF
Red Hat OpenShift Container Platform Overview
PDF
Microservices with Docker, Kubernetes, and Jenkins
PDF
Red Hat Container Strategy
PDF
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
PDF
An Introduction to Kubernetes
PPTX
OpenShift Enterprise 3.1 vs kubernetes
Red Hat OpenShift Container Platform Overview
Microservices with Docker, Kubernetes, and Jenkins
Red Hat Container Strategy
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
An Introduction to Kubernetes
OpenShift Enterprise 3.1 vs kubernetes
Ad

Similar to DevNexus 2015: Kubernetes & Container Engine (20)

PPTX
A Primer on Kubernetes and Google Container Engine
PDF
Mattia Gandolfi - Improving utilization and portability with Containers and C...
PDF
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
PDF
Pablo Chico de Guzman | Introducción a Docker y Kubernetes | Codemotion Madri...
PDF
DevJam 2019 - Introduction to Kubernetes
PDF
Intro to Kubernetes
PDF
Kubernetes
PDF
From Docker To Kubernetes: A Developer's Guide To Containers - Mandy White - ...
PDF
99cloud Docker Training module 2
PPTX
Kubernetes 101
PDF
Kubernetes
PDF
Kubernetes intro public - kubernetes user group 4-21-2015
PDF
Kubernetes intro public - kubernetes meetup 4-21-2015
PPTX
Cloud technology with practical knowledge
PDF
Quick introduction to Kubernetes
PPTX
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
PDF
Docker Madison, Introduction to Kubernetes
PDF
DEVOPS UNIT 4 docker and services commands
PPTX
Containers and Kubernetes -Notes Leo
PPTX
Kubernetes is all you need
A Primer on Kubernetes and Google Container Engine
Mattia Gandolfi - Improving utilization and portability with Containers and C...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
Pablo Chico de Guzman | Introducción a Docker y Kubernetes | Codemotion Madri...
DevJam 2019 - Introduction to Kubernetes
Intro to Kubernetes
Kubernetes
From Docker To Kubernetes: A Developer's Guide To Containers - Mandy White - ...
99cloud Docker Training module 2
Kubernetes 101
Kubernetes
Kubernetes intro public - kubernetes user group 4-21-2015
Kubernetes intro public - kubernetes meetup 4-21-2015
Cloud technology with practical knowledge
Quick introduction to Kubernetes
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
Docker Madison, Introduction to Kubernetes
DEVOPS UNIT 4 docker and services commands
Containers and Kubernetes -Notes Leo
Kubernetes is all you need

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Machine Learning_overview_presentation.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
1. Introduction to Computer Programming.pptx
PPT
Teaching material agriculture food technology
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
Per capita expenditure prediction using model stacking based on satellite ima...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Machine Learning_overview_presentation.pptx
A Presentation on Artificial Intelligence
Agricultural_Statistics_at_a_Glance_2022_0.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Programs and apps: productivity, graphics, security and other tools
1. Introduction to Computer Programming.pptx
Teaching material agriculture food technology
Assigned Numbers - 2025 - Bluetooth® Document
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Group 1 Presentation -Planning and Decision Making .pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Network Security Unit 5.pdf for BCA BBA.
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Mobile App Security Testing_ A Comprehensive Guide.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing

DevNexus 2015: Kubernetes & Container Engine

  • 1. @kitmerker Containers & Kubernetes Kit Merker / [email protected] / @kitmerker Product Manager Google Container Engine, Google Container Registry, Kubernetes
  • 2. @kitmerker build and deploy vm images • Curated runtimes • Rich services • Auto-everything • … just add code ● Managed collections ● Declarative + Dynamic Compute as a Continuum PlatformCluster • Basic atom • Run anything VM More agility More Flexibility build and deploy containers build and deploy apps
  • 3. @kitmerker Containers are like VMs, but less overhead Physical Processor Virtual Processor Operating System Libraries User Code Physical Processor Virtual Processor Operating System Libraries User Code Private Copy Shared Private Copy Shared Virtual Machines Containers
  • 4. @kitmerker Container Cluster Orchestration Package & run your app as containers Find existing container images from others Deploy your container on your laptop, server, or cloud Container Cluster Orchestration Engine Declarative management hides complexity Open Source, Runs Anywhere Cluster-Oriented Container Service Full Google Cloud Platform Infrastructure Powered by Kubernetes Kubernetes Container Engine
  • 5. @kitmerker But what ARE they? Lightweight VMs • no guest OS, lower overhead than VMs, but no virtualization hardware Better packages • no DLL hell Hermetically sealed static binaries - portable! • no external dependencies Provide Isolation (from each other and from the host) • Resources (CPU, RAM, Disk, etc.) • Users • Filesystem • Network
  • 6. @kitmerker How? Implemented by a number of (unrelated) Linux APIs: • cgroups: Restrict resources a process can consume • CPU, memory, disk IO, ... • namespaces: Change a process’s view of the system • Network interfaces, PIDs, users, mounts, ... • capabilities: Limits what a user can do • mount, kill, chown, ... • chroots: Determines what parts of the filesystem a user can see
  • 7. @kitmerker Everything at Google runs in containers: • Gmail, Web Search, Maps, ... • MapReduce, batch, ... • GFS, Colossus, ... • Even GCE itself: VMs in containers
  • 8. @kitmerker Everything at Google runs in containers: • Gmail, Web Search, Maps, ... • MapReduce, batch, ... • GFS, Colossus, ... • Even GCE itself: VMs in containers We launch over 2 billion containers per week.
  • 9. @kitmerker Why containers? • Performance • Repeatability • Isolation • Quality of service • Accounting • Visibility • Portability A fundamentally different way of managing applications Images by Connie Zhou
  • 11. @kitmerker But what IS Docker? An implementation of the container idea A package format An ecosystem A company An open-source juggernaut A phenomenon Hoorah! The world is starting to adopt containers!
  • 12. @kitmerker Now that we have containers... Isolation: Keep jobs from interfering with each other Scheduling: Where should my job be run? Lifecycle: Keep my job running Discovery: Where is my job now? Constituency: Who is part of my job? Scale-up: Making my jobs bigger or smaller Auth{n,z}: Who can do things to my job? Monitoring: What’s happening with my job? Health: How is my job feeling?
  • 13. @kitmerker Enter Kubernetes Greek for “Helmsman”; also the root of the word “Governor” • Container orchestrator • Runs Docker containers • Supports multiple cloud and bare-metal environments • Inspired and informed by Google’s experiences and internal systems • Open source, written in Go Manage applications, not machines
  • 15. @kitmerker keep your apps running Demo: a taste of Kubernetes
  • 16. @kitmerker Design principles Declarative > imperative: State your desired results, let the system actuate Control loops: Observe, rectify, repeat Simple > Complex: Try to do as little as possible Modularity: Components, interfaces, & plugins Legacy compatible: Requiring apps to change is a non-starter Network-centric: IP addresses are cheap No grouping: Labels are the only groups Bulk > hand-crafted: Manage your workload in bulk Open > Closed: Open Source, standards, REST, JSON, etc.
  • 17. @kitmerker Primary concepts Container: A sealed application package (Docker) Pod: A small group of tightly coupled Containers example: content syncer & web server Controller: A loop that drives current state towards desired state example: replication controller Service: A set of running pods that work together example: load-balanced backends Labels: Identifying metadata attached to other objects example: phase=canary vs. phase=prod Selector: A query against labels, producing a set result example: all pods where label phase == prod
  • 20. @kitmerker Pods Small group of containers & volumes Tightly coupled • same node The atom of cluster scheduling & placement Shared namespace • share IP address & localhost Ephemeral • can die and be replaced Example: data puller & web server Pod File Puller Web Server Volume Consumers Content Manager
  • 21. @kitmerker Pod networking Pod IPs are routable • Docker default is private IP Pods can reach each other without NAT • even across nodes No brokering of port numbers This is a fundamental requirement • several SDN solutions
  • 23. @kitmerker Labels Arbitrary metadata Attached to any API object Generally represent identity Queryable by selectors • think SQL ‘select ... where ...’ The only grouping mechanism • pods under a ReplicationController • pods in a Service • capabilities of a node (constraints) Example: “phase: canary” App: Nifty Phase: Dev Role: FE App: Nifty Phase: Dev Role: BE App: Nifty Phase: Test Role: FE App: Nifty Phase: Test Role: BE
  • 24. @kitmerker Selectors App: Nifty Phase: Dev Role: FE App: Nifty Phase: Test Role: FE App: Nifty Phase: Dev Role: BE App: Nifty Phase: Test Role: BE
  • 25. @kitmerker App == NiftyApp: Nifty Phase: Dev Role: FE App: Nifty Phase: Test Role: FE App: Nifty Phase: Dev Role: BE App: Nifty Phase: Test Role: BE Selectors
  • 26. @kitmerker App == Nifty Role == FE App: Nifty Phase: Dev Role: FE App: Nifty Phase: Test Role: FE App: Nifty Phase: Dev Role: BE App: Nifty Phase: Test Role: BE Selectors
  • 27. @kitmerker App == Nifty Role == BE App: Nifty Phase: Dev Role: FE App: Nifty Phase: Test Role: FE App: Nifty Phase: Dev Role: BE App: Nifty Phase: Test Role: BE Selectors
  • 28. @kitmerker App == Nifty Phase == Dev App: Nifty Phase: Dev Role: FE App: Nifty Phase: Test Role: FE App: Nifty Phase: Dev Role: BE App: Nifty Phase: Test Role: BE Selectors
  • 29. @kitmerker App == Nifty Phase == Test App: Nifty Phase: Dev Role: FE App: Nifty Phase: Test Role: FE App: Nifty Phase: Dev Role: BE App: Nifty Phase: Test Role: BE Selectors
  • 30. @kitmerker Control loops Drive current state -> desired state Act independently APIs - no shortcuts or back doors Observed state is truth Recurring pattern in the system Example: ReplicationController observe diff act
  • 31. @kitmerker Replication Controllers Replication Controller - Name = “nifty-rc” - Selector = {“App”: “Nifty”, "Phase": "Dev", "Role": "FE"} - PodTemplate = { ... } - NumReplicas = 4
  • 32. @kitmerker Replication Controllers node 1 f0118 node 3 node 4node 2 d9376 b0111 a1209 Replication Controller - Desired = 4 - Current = 4
  • 33. @kitmerker Replication Controllers node 1 f0118 node 3 node 4node 2 Replication Controller - Desired = 4 - Current = 4 d9376 b0111 a1209
  • 34. @kitmerker Replication Controllers node 1 f0118 node 3 node 4 Replication Controller - Desired = 4 - Current = 3 b0111 a1209
  • 35. @kitmerker Replication Controllers node 1 f0118 node 3 node 4 Replication Controller - Desired = 4 - Current = 4 b0111 a1209 c9bad
  • 36. @kitmerker scaling up & down Demo: more Kubernetes
  • 37. @kitmerker Services A group of pods that act as one == Service • group == selector Defines access policy • only “load balanced” for now Gets a stable virtual IP and port • called the service portal • also a DNS name VIP is captured by kube-proxy • watches the service constituency • updates when backends change Hide complexity - ideal for non-native apps Portal (VIP) Client
  • 38. @kitmerker Services 10.0.0.1 : 9376 Client kube-proxy Service - Name = “nifty-svc” - Selector = {“App”: “Nifty”} - Port = 9376 - ContainerPort = 8080 Portal IP is assigned iptables DNAT TCP / UDP apiserver watch 10.240.2.2 : 808010.240.1.1 : 8080 10.240.3.3 : 8080 TCP / UDP
  • 39. @kitmerker Kubernetes Status & plans Open sourced in June, 2014 • won the BlackDuck “rookie of the year” award • so did cAdvisor :) Google launched Google Container Engine (GKE) • hosted Kubernetes • https://cloud.google.com/container-engine/ Roadmap: • https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/roadmap.md Driving towards a 1.0 release in O(months) • O(100) nodes, O(50) pods per node • focus on web-like app serving use-cases
  • 40. @kitmerker The Goal: Shake things up Containers is a new way of working Requires new concepts and new tools Google has a lot of experience... ...but we are listening to the users Workload portability is important!
  • 41. @kitmerker Google Container Registry • Securely store your container images • Access Control / Image Encryption • Inexpensive and scalable Google Cloud Storage • Fast & Reliable Deployment Try it out: cloud.google.com/tools/container-registry/
  • 42. @kitmerker Push & Pull Demo: Google Container Registry
  • 43. @kitmerker Kubernetes is Open Source We want your help! http://kubernetes.io https://github.com/GoogleCloudPlatform/kubernetes irc.freenode.net #google-containers @kubernetesio
  • 44. @kitmerker Questions? Images by Connie Zhou http://kubernetes.io