workshop: deploying and scaling node.js with kubernetes

28
© 2016 NodeSource 1

Upload: ross-kukulinski

Post on 11-Jan-2017

122 views

Category:

Technology


2 download

TRANSCRIPT

© 2016 NodeSource1

© 2016 NodeSource2

© 2016 NodeSource3

Welcome

Ross Kukulinski

Currently PM @ NodeSource

Node.js Evangelism WG

Introduction to CoreOS - O’Reilly Media

Nathan White

Solutions Architect @ NodeSource

Responsible for Mongoose :-/

Really old. Like. Old.

© 2016 NodeSource

Welcome

4

Today’s Roadmap • Introduction to Kubernetes

• Cloudy Time Machine Overview

• Ship to production

Just kidding!

© 2016 NodeSource

Container Orchestration

5

© 2016 NodeSource6

If your architecture looks like this

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

© 2016 NodeSource7

If your architecture looks like this

You need orchestration help

© 2016 NodeSource

Orchestration Overview

8

Container Orchestration • Schedule containers to physical/virtual machines

• Restart containers if they stop

• Provide private container network

• Scale up and down

• Service discovery

© 2016 NodeSource

Kubernetes 101

9

© 2016 NodeSource

Kubernetes 101

10

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

management of containerized applications.

© 2016 NodeSource

Kubernetes 101

11

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 NodeSource

Kubernetes Terminology

12

© 2016 NodeSource

Kubernetes 101

13

Terminology - Nodes • 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 NodeSource

Kubernetes 101

14

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 NodeSource

Kubernetes 101

15

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 NodeSource

Kubernetes 101

16

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 NodeSource

Kubernetes 101

17

Terminology - Services • An abstraction which defines a logical set of Pods

• Provides a mechanism for accessing them

• 3 types: ClusterIP, NodePort, LoadBalancer

© 2016 NodeSource

Kubernetes 101

18

Terminology - Namespaces • Provide a virtual cluster backed my 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

© 2016 NodeSource19

© 2016 NodeSource

HelloWorld is so yesterday

20

© 2016 NodeSource21

© 2016 NodeSource22

© 2016 NodeSource23

© 2016 NodeSource24

http://cloudytimemachine.com

© 2016 NodeSource25

© 2016 NodeSource26

Demo Gods… we salute you!

© 2016 NodeSource27

Workshop Resources

github.com/cloudytimemachine/nodeinteractive-workshop