Review Kubernetes history as the project moves towards a 1.0 release.
Video: https://www.youtube.com/watch?v=_JDUbitRYws
Join DevOps Exchange London here: http://www.meetup.com/DevOps-Exchange-London
Follow DOXLON on twitter http://www.twitter.com/doxlon
Scaling API-first – The story of a global engineering organization
Kubernetes 1.0 Roadmap and Release Plans
1. The Road to 1.0
Kubernetes — DOXLON Meetup, June 2015
Craig Box, Solution Engineer, Google Cloud Platform
#kubernetes kubernetes.io twitter.com/craigbox
2. Kubernetes
A recap
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
3. A small group of
tightly coupled
containers
Example:
static site generator &
web server
A loop that drives
current state towards
desired state
Example:
replication controller
A set of running pods
that work together
Example: load-
balanced backends
Arbitrary metadata to
organize components
Example:
phase=production
role=frontend
Pod
Replication
Controller Service Labels
4.
5. ● Open sourced in June, 2014
● Google launched Google Container Engine (GKE)
○ hosted Kubernetes - don’t think about cluster setup
● Lots of partners
○ RedHat (OpenShift 3 PaaS)
○ CoreOS (Tectonic turn-key Kubernetes deployment)
○ Mesosphere (Kubernetes on Mesos - share with non-container workloads)
○ Mirantis (Murano Kubernetes on OpenStack)
● Driving towards a 1.0 release
○ O(100) nodes, O(30) pods per node
○ stable APIs (v1)
● Roadmap on GitHub
Status and plans
Kubernetes
9. Google's data centers were designed from the ground up for this approach
to management
No matter how cheap, how fast or how reliable hosting is, no-one wants
lock-in to a single provider
What we did needed to be:
● built in the open
● pattern compatible with our approach to management
● address the mistakes of our previous systems
Help the world go Cloud Native
Why build Kubernetes?
(Micro) Service orientedDynamically scheduledContainer packaged
10. We wanted:
1. To write in Go, not Java or C++
● The container world was
moving to Go
● We knew Go was more
productive
2. To showcase the critical constructs
● Other systems were largely
monolithic
● Build the simplest thing that
works and grow from there
Help the world go Cloud Native
Why build Kubernetes?
3. "Over-modularity"
● Necessary for an ecosystem
to emerge
4. The cluster environment to be
lightweight
● Turn up and turn down as
easily as a VM
11. ● Mesos focus: schedulers and scheduling
○ Influenced by Google's published papers for Map/Reduce workloads
● Kubernetes focus: make it easy to build and manage distributed systems
○ scheduling is part of this, but not the only (or even primary) focus
○ services (provides discovery and load balancing)
○ master election
○ config store
○ easy private registry integration
○ namespaces
○ secrets
○ service accounts
○ volumes, and auto mount/unmount of persistent storage
Relationship to Mesos
Kubernetes
12. Relationship to Mesos
● No-one runs Mesos: they run Mesos + Chronos, Marathon, Aurora, or write their
own scheduler
● If you want Mesos, run Mesos + Kubernetes
● Mesos focus on what they’re great at (hardware abstraction and resource pooling)
● The Kubernetes community focuses on what it is good at
Target Kubernetes and you can run anywhere
Kubernetes
13. Spreading out now beyond Kubernetes
● appc and rkt
● Hyper, a new container VM runtime
● "The thinner the layer over Docker
that Kubernetes is, the better"
○ Proposal
● Watch this space for
Open Container Project!
Kubernetes opinions
The pod model
14. Kubernetes opinions
Or "do I need overlay networking?"
● Assume your application starts on
random ports
● In addition to requiring discovery for IP
addresses, you have to write custom
code (how do you convince redis to use
your lookup service for ports?)
● Ports are different between your replicas
● ACLs and QoS are harder to define for
the network without an identity for each
application
IP per Pod
15. Kubernetes opinions
Secrets
tmpfs-backed secret store
● Decouples secrets (passwords, SSH
keys, OAuth tokens, etc) from code
● Appears as a volume mounted to a
container within a Pod definition
● Never touches disk
● GitHub docs
16. “Don't make the same
mistakes we did. Only
make new ones!
– john wilkes, Principal Software Engineer
18. Where are we now
Kubernetes 1.0
● v0.20 is 1.0 release candidate
○ If it’s work required for a 1.0 feature, or a bug that needs to be fixed for 1.0, we’ll
review and merge as usual
○ If it’s not required for 1.0, we will place the PR in the v1.0-post milestone and
return to it once 1.0 ships
○ Focus between RC and 1.0 will be testing, usability, reliability, performance and
documentation
● v1 API has been released
○ Thanks for all the feedback that shaped the API.
○ The intent is for the v1 API to be stable, with only backward-compatible changes,
for a sustained period of time.
19. Where are we now
Kubernetes 1.0
● 1.0 launch event in July
○ July 21st in Portland, OR - a part of OSCON
● 1.0 signifies that Kubernetes is ready for production workloads
● Already working on the v2 API and post-1.0 features
20. ● Network plugins
● Secrets
● Graceful termination
● Quota and other multi-user
● More volume types
● Auto-scaling
● Master and node upgrades
● Better batch job support
● Better performance and scalability
● High-availability masters
● Master election & other primitives
● Deployment controller
● Cluster federation: on-prem + multi-
cluster (“ubernetes”)
● Easier setup, and self-hosting
● rkt support
What's new (and coming)?
Kubernetes 1.0