Skip to content

Latest commit

 

History

History
514 lines (411 loc) · 13 KB

slides.md

File metadata and controls

514 lines (411 loc) · 13 KB

layout: true background-image: url(photos/k8s-sticker.jpg) background-size: cover background-position: 50% 25% image-credit: Photo "k8s Sticker" shared by Joe Beda under a Creative Commons ( BY ) license


class: middle, center

Mumbai's First Kubernetes Meetup

.cblock[ Augustine Correa
Organizer - Mumbai Technology Meetup
Twitter: @hackmum ]

.image-credit[ {{image-credit}} ]


class: column-slide background-image: url(photos/record.jpg) image-credit: flickr photo shared by VanDammeMaarten under a Creative Commons ( BY ) license

.column-container[.left-column[

Recap

Containers

] .right-column[ .center[

"It's the next big thing!"

] ] ]

.image-credit[ {{image-credit}} ]


class: column-slide background-image: url(photos/record.jpg) image-credit: flickr photo shared by VanDammeMaarten under a Creative Commons ( BY ) license

.column-container[.left-column[

Recap

Linux Kernel Features

] .right-column[ cgroups:

  • Resource limiting, tracking, prioritization, and isolation
  • CPU, RAM, IO, Networking, etc.
  • Developed by Google for over ~10 years
  • "nice++"

namespaces:

  • Resource visibility and naming isolation
  • network, PID, users, mounts
  • "chroot++"

cgroups + namespaces = "lightweight virtualization" ] ]

.image-credit[ {{image-credit}} ]


class: column-slide background-image: url(photos/record.jpg) image-credit: flickr photo shared by VanDammeMaarten under a Creative Commons ( BY ) license

.column-container[.left-column[

Recap

User Experience

] .right-column[ Containers == Docker?

  • Image format: Upload, download, share, build
  • API: Automatable create, delete, start, stop
  • Networking: Good defaults ] ]

.image-credit[ {{image-credit}} ]


class: column-slide background-image: url(photos/record.jpg) image-credit: flickr photo shared by VanDammeMaarten under a Creative Commons ( BY ) license

.column-container[.left-column[

Recap

Excitement

] .right-column[ Users benefits:

  1. Packaging, deployment and reuse
  2. Efficiency and overcommit
  3. Security*

This list is in order

* Big caveats here currently ] ]

.image-credit[ {{image-credit}} ]


class: column-slide background-image: url(photos/record.jpg) image-credit: flickr photo shared by VanDammeMaarten under a Creative Commons ( BY ) license

.column-container[.left-column[

Recap

Gaps

] .right-column[ Dev → Production

  • Multi-machine
  • Discovery and Naming
  • Scaling
  • Multiple users
  • Failure tolerance and recovery
  • Monitoring
  • Logging
  • High availability
  • Deployment lifecycle
  • Load balancing
  • etc, etc

] ]

.image-credit[ {{image-credit}} ]


class: column-slide background-image: url(photos/record.jpg) image-credit: flickr photo shared by VanDammeMaarten under a Creative Commons ( BY ) license

.column-container[.left-column[

Recap

Micro-services?

] .right-column[

  • Split your application into small services that can be reused, remixed and shared.
  • Enables smaller, nimble, decoupled teams and processes.
  • Better tooling enables and encourages microservices.

Not what I'm talking about today.

] ]

.image-credit[ {{image-credit}} ]

class: column-slide background-image: url(photos/ship-wheel.jpg) image-credit: flickr photo shared by Rick Galvan under a Creative Commons ( BY ) license

.column-container[.left-column[

Kubernetes

Defined

] .right-column[

Kubernetes is ancient Greek for "Helmsman". Root of the word "Governor", "Cybernetics".

Kubernetes is a "Container Orchestrator" or "Cluster Manager".

  • Places containers on nodes
  • Recovers automatically from failure
  • Basic monitoring, logging, health checking
  • Enables containers to find each other.

Key component in logical infrastructure

]]

.image-credit[ {{image-credit}} ]

class: column-slide background-image: url(photos/ship-wheel.jpg) image-credit: flickr photo shared by Rick Galvan under a Creative Commons ( BY ) license

.column-container[.left-column[

Kubernetes

Google Grown

] .right-column[ Based on ideas proven at Google over 10 years

Everything at Google runs in a container.

Google launches 2 billion containers per week.

Part of a larger set of tools that make up the internal Google platform. ]]

.image-credit[ {{image-credit}} ]

class: column-slide background-image: url(photos/ship-wheel.jpg) image-credit: flickr photo shared by Rick Galvan under a Creative Commons ( BY ) license

.column-container[.left-column[

Kubernetes

Open Source

] .right-column[ https://github.com/kubernetes/kubernetes

Very active open source project

15k stars, 750+ contributors

Apache 2 licensed

Written in Go

Owned by the Cloud Native Computing Foundation ]]

.image-credit[ {{image-credit}} ]

???

stats with git shortlog -sn --no-merges | wc


class: column-slide background-image: url(photos/ship-wheel.jpg) image-credit: flickr photo shared by Rick Galvan under a Creative Commons ( BY ) license

.column-container[.left-column[

Kubernetes

Benefits

] .right-column[ Extend the container goodness across nodes.

Enable operations specialization. Cluster Ops vs. App Ops

Reduce cost to run many things in production. Enables new ways of building applications. ]]

.image-credit[ {{image-credit}} ]


class: column-slide background-image: url(photos/core-memory.jpg) image-credit: flickr photo shared by dvanzuijlekom under a Creative Commons ( BY-SA ) license

.column-container[.left-column[

Core Concepts

Cluster

] .right-column[.center[ ]]]

.image-credit[ {{image-credit}} ]

class: column-slide background-image: url(photos/core-memory.jpg) image-credit: flickr photo shared by dvanzuijlekom under a Creative Commons ( BY-SA ) license

.column-container[.left-column[

Core Concepts

Pod

] .right-column[.center[ ]]]

.image-credit[ {{image-credit}} ]

class: column-slide background-image: url(photos/core-memory.jpg) image-credit: flickr photo shared by dvanzuijlekom under a Creative Commons ( BY-SA ) license

.column-container[.left-column[

Core Concepts

Labels

] .right-column[.center[ ]]]

.image-credit[ {{image-credit}} ]

class: column-slide background-image: url(photos/core-memory.jpg) image-credit: flickr photo shared by dvanzuijlekom under a Creative Commons ( BY-SA ) license

.column-container[.left-column[

Core Concepts

Replication Controller

] .right-column[.center[ ]]]

.image-credit[ {{image-credit}} ]


class: column-slide background-image: url(photos/core-memory.jpg) image-credit: flickr photo shared by dvanzuijlekom under a Creative Commons ( BY-SA ) license

.column-container[.left-column[

Core Concepts

Replication Controller

] .right-column[.center[ ]]]

.image-credit[ {{image-credit}} ]


class: column-slide background-image: url(photos/core-memory.jpg) image-credit: flickr photo shared by dvanzuijlekom under a Creative Commons ( BY-SA ) license

.column-container[.left-column[

Core Concepts

Service

] .right-column[.center[ ]]]

.image-credit[ {{image-credit}} ]

class: column-slide background-image: url(photos/core-memory.jpg) image-credit: flickr photo shared by dvanzuijlekom under a Creative Commons ( BY-SA ) license

.column-container[.left-column[

Core Concepts

Persistent Volumes

] .right-column[.center[ ]]]

.image-credit[ {{image-credit}} ]

class: column-slide background-image: url(photos/space-needle.jpg) image-credit: flickr photo shared by Seattle Municipal Archives under a Creative Commons ( BY ) license

.column-container[.left-column[

Design Principles

] .right-column[

  • declarative > imperative
  • control loops
  • simple > complex
  • modularity
  • legacy compatible
  • network-centric
  • labels > hierarchy
  • cattle > pets
  • open > closed ]]

.image-credit[ {{image-credit}} ]

class: column-slide background-image: url(photos/road.jpg) image-credit: flickr photo shared by mdalmuld under a Creative Commons ( BY ) license

.column-container[.left-column[

What's New?

Kubernetes 1.4

] .right-column[ Shipped Sept 26

  • Cluster creation simplified
    • kubeadm
    • Package Streamlining
    • Add-on Deployments
    • Certificates API
  • Expanded Stateful Application Support
    • ScheduledJob
    • Init-containers
    • Dynamic PVC provisioning
    • Helm Charts
  • Cluster Federation API additions
    • Federated Replica Sets
    • Federated Services
    • Federated Ingress
  • Container Security support
    • Pod Security Policy
    • App Armor
  • Infrastructure enhancements
    • Scheduler
    • Disruptions SLO
    • Storage
    • Clients
  • Kubernetes Dashboard API

]]

.image-credit[ {{image-credit}} ]

class: column-slide background-image: url(photos/road.jpg) image-credit: flickr photo shared by mdalmuld under a Creative Commons ( BY ) license

.column-container[.left-column[

What's Next?

Kubernetes 1.5

] .right-column[ ETA Nov 17

  • Forgiveness/Taints & Toleration
  • Performance and Scale Improvements
  • etcd v3 API storage backend
  • Autoscaling
  • Private Federated Services
  • ....and much more :-) ]]

.image-credit[ {{image-credit}} ]


class: middle, left

Thank you!

.cblock[ Augustine Correa
@hackmum
https://fb.com/hackmum
]

.ccblock[ Creative Commons License
Kubernetes 101 by Joe Beda is licensed under a Creative Commons Attribution 4.0 International License. ]

.image-credit[ {{image-credit}} ]