DECEMBER 6, 2016 @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 @RossKukulinski5
If your architecture looks like this
Manage your containers with Ansible, Docker Swarm, Amazon ECS, etc.
© 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
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 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
© 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
© 2016 @RossKukulinski22
Workshop Resources
github.com/rosskukulinski/kubernetes-101-for-devs