D E C E M B E R 6 , 2 0 1 6
@RossKukulinski
Kuberentes 101 for Developers
Ross Kukulinski
© 2016 @RossKukulinski2
Welcome
Ross Kukulinski
Kubernetes/DevOps Consultant
Node.js Evangelism WG / RethinkDB Community
Introduction to CoreOS - O’Reilly Media
@RossKukulinski on Twitter/GitHub
© 2016 @RossKukulinski
Welcome
3
Today’s Roadmap
• Introduction to Kubernetes
• Ship to production
Just kidding!
© 2016 @RossKukulinski
Container Orchestration
4
© 2016 @RossKukulinski5
If your architecture looks like this
Manage your containers with Ansible, Docker
Swarm, Amazon ECS, etc.
© 2016 @RossKukulinski6
If your architecture looks like this
You need orchestration help
© 2016 @RossKukulinski
Orchestration Overview
7
Container Orchestration
• Schedule containers to physical/virtual machines
• Restart containers if they stop
• Provide private container network
• Scale up and down
• Service discovery
© 2016 @RossKukulinski
Kubernetes 101
8
© 2016 @RossKukulinski
Kubernetes 101
9
Kubernetes is an open source system for
automating deployment, scaling, and
management of containerized
applications.
© 2016 @RossKukulinski
Kubernetes 101
10
Kubernetes Orchestration
• Schedules containers to physical machines
• Service discovery & load balancing
• Horizontal application scaling
• Automated rollouts & rollbacks
• Secret and configuration management
• Storage orchestration
• … and a whole lot more!
© 2016 @RossKukulinski
Kubernetes Terminology
11
© 2016 @RossKukulinski
Kubernetes 101
12
Terminology - Node
• Is a worker machine in Kubernetes that runs your containers
• Node may be a VM or physical machine
• Each Node has the services necessary to run Pods
© 2016 @RossKukulinski
Kubernetes 101
13
Terminology - Master
• A special Node in Kubernetes that manages the cluster state
• Usually does not run your containers
• Runs necessary services to manage cluster , backed by etcd
© 201614
© 2016 @RossKukulinski
Kubernetes 101
15
Terminology - Namespaces
• Provide a virtual cluster backed by the same physical cluster
• Namespaces provide a scope for names. Names of resources
need to be unique within a namespace, but not across
namespaces.
• Divide cluster resources between multiple uses
• If not specified, you’re using the ‘default’ namespace
© 2016 @RossKukulinski
Kubernetes 101
16
Terminology - Pods
• Smallest deployable unit of computing
• Group of one or more containers
• Containers within a Pod share a cluster-accessible IP address
(and localhost)
• Containers within a Pod of access to shared volumes
© 2016 @RossKukulinski
Kubernetes 101
17
Terminology - Replica Sets
• Ensures that a specified number of Pod “replicas” are running
at one time
• If there are too many, it will kill some Pods
• If there are too few, it will start more
© 2016 @RossKukulinski
Kubernetes 101
18
Terminology - Deployments
• Provide declarative updates for Pods/Replica Sets
• Manages one or more Replica Sets
• Primary mechanism for interacting with Pods!
• Automated rollouts and rollbacks :)
© 2016 @RossKukulinski
Kubernetes 101
19
Terminology - Services
• An abstraction which defines a logical set of Pods
• Provides a mechanism for accessing them
• 3 types: ClusterIP, NodePort, LoadBalancer
© 201620
© 2016 @RossKukulinski21
Demo Gods… we salute you!
© 2016 @RossKukulinski22
Workshop Resources
github.com/rosskukulinski/
kubernetes-101-for-devs
© 201623
© 201624
© 2016 @RossKukulinski25
http://cloudytimemachine.com
© 201626
Thank you.
Ross Kukulinski
ross@kukulinski.com
@rosskukulinski

Kubernetes 101 for Developers