kubernetes 101 for developers

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

Upload: ross-kukulinski

Post on 16-Apr-2017

916 views

Category:

Technology


0 download

TRANSCRIPT

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

@RossKukulinski

Kuberentes 101 for DevelopersRoss 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 [email protected]

@rosskukulinski