workshop: deploying and scaling node.js with kubernetes
TRANSCRIPT
© 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 NodeSource6
If your architecture looks like this
Manage your containers with Ansible, Docker Swarm, Amazon ECS, etc.
© 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
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 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 NodeSource27
Workshop Resources
github.com/cloudytimemachine/nodeinteractive-workshop