KUBERNETES: An Introduction Presented by Shane Clifford Introduction Shane Clifford • 3rd Year Student IT Tralee • Currently On Work Experience With Continuum Commerce • Kubernetes Project Presentation Outline • • • • • • • • What Is Kubernetes? What are Docker Containers? Who uses Kubernetes? Kubernetes Architecture Some Terminology Create a Deployment Benefits and Challenges Question Time What is Kubernetes? • Kubernetes is a powerful system, developed by Google, for managing containerized applications in a clustered environment. • It aims to provide better ways of managing related, distributed components across varied infrastructure. • Developed by Google / Now an open source project What Are Containerized Applications? • A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings.. • Containerized software will always run the same, regardless of the environment. • Containers vs VMs ▫ Lightweight Docker • Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. • Docker standardises container management • Create a Docker Image and push to a repository (Docker Hub) • Allow anyone to pull image and run Who Uses Kubernetes? • Google ▫ Google Borg • The New York Times • Amazon • Monsanto • Pokémon Go Some Terminology • Cluster (nodes/AWS/GC) • Pods • Labels/Selectors • Services • Replicas • Scaling Kubernetes Architecture PODS • Pods are the basic building block of Kubernetes • Pods are the smallest deployable units that are created and managed in Kubernetes • A Pod is a group of one or more containers, the shared storage for the containers and options to run the containers • Each pod is assigned a unique, DYNAMIC IP address Labels/Selectors • Labels are value/key pairs assigned to a objects like Pods and Services • Labels can be used to organize and to select subsets of objects. • Labels can be attached to objects at creation time and subsequently added and modified at any time. • Basically Labels are used to identify objects Services • A Kubernetes Service is an abstraction which defines a logical set of Pods and a policy by which to access them • The set of pods gathered by a Service is determined by a label selector • Services have a STATIC IP Address and can expose your Pods to a port • Example…… Service Configuration Example SCALING • Replication Controller • Ensures that a POD or a set of pods are always running and available • Always maintains desired number of pods ▫ Excess Pods are killed ▫ New pods auto launched when they fail or get deleted ▫ Auto Scaling A Quick Demo On MiniKube That hopefully works………. • Create a pod • Create a service • Deploy to Cluster • Display Scaling and Replication Controller Challenges • Very difficult to get up and running • Poor Documentation ▫ Growing fast Summary • • • • • • What Kubernetes is Containers and Docker Pods Services Labels Clusters