Top Banner
DECEMBER 6, 2016 @RossKukulinski Kuberentes 101 for Developers Ross Kukulinski
27

Kubernetes 101 for Developers

Apr 16, 2017

Download

Technology

Ross Kukulinski
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Kubernetes 101 for Developers

D E C E M B E R 6 , 2 0 1 6

@RossKukulinski

Kuberentes 101 for DevelopersRoss Kukulinski

Page 2: Kubernetes 101 for Developers

© 2016 @RossKukulinski2

Welcome

Ross Kukulinski

Kubernetes/DevOps Consultant

Node.js Evangelism WG / RethinkDB Community

Introduction to CoreOS - O’Reilly Media

@RossKukulinski on Twitter/GitHub

Page 3: Kubernetes 101 for Developers

© 2016 @RossKukulinski

Welcome

3

Today’s Roadmap • Introduction to Kubernetes

• Ship to production

Just kidding!

Page 4: Kubernetes 101 for Developers

© 2016 @RossKukulinski

Container Orchestration

4

Page 5: Kubernetes 101 for Developers

© 2016 @RossKukulinski5

If your architecture looks like this

Manage your containers with Ansible, Docker Swarm, Amazon ECS, etc.

Page 6: Kubernetes 101 for Developers

© 2016 @RossKukulinski6

If your architecture looks like this

You need orchestration help

Page 7: Kubernetes 101 for Developers

© 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

Page 8: Kubernetes 101 for Developers

© 2016 @RossKukulinski

Kubernetes 101

8

Page 9: Kubernetes 101 for Developers

© 2016 @RossKukulinski

Kubernetes 101

9

Kubernetes is an open source system for automating deployment, scaling, and

management of containerized applications.

Page 10: Kubernetes 101 for Developers

© 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!

Page 11: Kubernetes 101 for Developers

© 2016 @RossKukulinski

Kubernetes Terminology

11

Page 12: Kubernetes 101 for Developers

© 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

Page 13: Kubernetes 101 for Developers

© 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

Page 14: Kubernetes 101 for Developers

© 201614

Page 15: Kubernetes 101 for Developers

© 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

Page 16: Kubernetes 101 for Developers

© 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

Page 17: Kubernetes 101 for Developers

© 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

Page 18: Kubernetes 101 for Developers

© 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 :)

Page 19: Kubernetes 101 for Developers

© 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

Page 20: Kubernetes 101 for Developers

© 201620

Page 21: Kubernetes 101 for Developers

© 2016 @RossKukulinski21

Demo Gods… we salute you!

Page 22: Kubernetes 101 for Developers

© 2016 @RossKukulinski22

Workshop Resources

github.com/rosskukulinski/kubernetes-101-for-devs

Page 23: Kubernetes 101 for Developers

© 201623

Page 24: Kubernetes 101 for Developers

© 201624

Page 25: Kubernetes 101 for Developers

© 2016 @RossKukulinski25

http://cloudytimemachine.com

Page 26: Kubernetes 101 for Developers

© 201626

Page 27: Kubernetes 101 for Developers

Thank you.

Ross [email protected]

@rosskukulinski