Kubernetes
Container Orchestration
Mukta Aphale
Founder & CEO(Crevise Technology)
Pravin Magdum
VP - Delivery (Crevise Technology)
Who am I?
● VP-Delivery @Crevise
● 10 + years of development and solution architecture exp in various
technology.
● Developer turned into Devops evangelist
● Transited from Windows -> Linux
● Container lover.
● Love debugging issues aka issue resolver.
K8s? What is this ?
● Kubernetes is an open-source system for automating deployment,
scaling, and management of containerized applications.
● It groups containers that make up an application into logical units
for easy management and discovery.
● In easy terms, It is Container Orchestration tool
● Supports multiple public cloud provider and bare metal
environment
Kubernetes Features
Automatic binpacking
Automatically places containers based on their resource
requirements and other constraints, while not sacrificing
availability. Mix critical and best-effort workloads in order to drive
up utilization and save even more resources.
Horizontal scaling
Scale your application up and down with a simple
command, with a UI, or automatically based on CPU
usage.
Automated rollouts and rollbacks
Kubernetes progressively rolls out changes to your application or its
configuration, while monitoring application health to ensure it doesn't kill all
your instances at the same time. If something goes wrong, Kubernetes will
rollback the change for you. Take advantage of a growing ecosystem of
deployment solutions.
Self-healing
● Restarts containers that fail,
● Replaces and reschedules containers when nodes die,
● kills containers that don't respond to your user-defined health
check
Service discovery and load balancing
● No need to modify your application to use an unfamiliar service
discovery mechanism.
● Kubernetes gives containers their own IP addresses and a single
DNS name for a set of containers, and can load-balance across
them.
Secret and Configuration management
Deploy and update secrets and application configuration without
rebuilding your image and without exposing secrets in your stack
configuration.
Architecture and Key
Concepts
Architecture
Master Node
● The Kubernetes Master is a collection of three processes that run on a single node in your cluster, which is designated as the
master node.
● Responsible for maintaining the desired state for your cluster.
● Master can also be replicated for availability and redundancy.
● Kube Api Server
● ETCD
● Kube Controller manager
● Kube scheduler
Worker Node
● The nodes in a cluster are the machines (VMs, physical servers etc)
that run your applications and cloud workflows.
● Kubelet
● Kube-proxy
● Container runtime engine -docker
Pods
● Basic building block of Kubernetes–the smallest and simplest unit in the
Kubernetes object model that you create or deploy
● Presents a running process on your cluster.
● Group of containers would share storage, Linux namespaces, IP addresses.
● Co-located, hence share resources and are always scheduled together.
● Created, destroyed and re-created on demand, based on the state of the
server and the service itself.
● “one-container-per-Pod” model is the most common Kubernetes use case
Deployments
● Level of abstraction above pods
● Define the desired scale and state of a group of pods
● To rollout a replicas
● Rollback to earlier version
● Scaling your pods /application
● Pause deployment
Deployment Example
Services
● Kubernetes Pods are mortal.
● A Kubernetes Service is an abstraction which defines a logical set of Pods
● The set of Pods targeted by a Service is determined by a Label Selector
● Define a DNS entry that can be used to refer to a group of pods
● Provide a consistent endpoint for the group of pods
● Similar in functionality to load balancers
Ingresses
● Define how traffic outside the cluster is routed to inside the cluster
● Used to expose Kubernetes services to the world
● Route traffic to internal services based on factors such as host and path
DEMO
https://github.com/PravinMagdum/k8s-guestbook
Thank You! J
Pravin@crevise.com
Mukta@crevise.com

Kubernetes intro

  • 1.
    Kubernetes Container Orchestration Mukta Aphale Founder& CEO(Crevise Technology) Pravin Magdum VP - Delivery (Crevise Technology)
  • 2.
    Who am I? ●VP-Delivery @Crevise ● 10 + years of development and solution architecture exp in various technology. ● Developer turned into Devops evangelist ● Transited from Windows -> Linux ● Container lover. ● Love debugging issues aka issue resolver.
  • 3.
    K8s? What isthis ? ● Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. ● It groups containers that make up an application into logical units for easy management and discovery. ● In easy terms, It is Container Orchestration tool ● Supports multiple public cloud provider and bare metal environment
  • 4.
  • 5.
    Automatic binpacking Automatically placescontainers based on their resource requirements and other constraints, while not sacrificing availability. Mix critical and best-effort workloads in order to drive up utilization and save even more resources.
  • 6.
    Horizontal scaling Scale yourapplication up and down with a simple command, with a UI, or automatically based on CPU usage.
  • 7.
    Automated rollouts androllbacks Kubernetes progressively rolls out changes to your application or its configuration, while monitoring application health to ensure it doesn't kill all your instances at the same time. If something goes wrong, Kubernetes will rollback the change for you. Take advantage of a growing ecosystem of deployment solutions.
  • 8.
    Self-healing ● Restarts containersthat fail, ● Replaces and reschedules containers when nodes die, ● kills containers that don't respond to your user-defined health check
  • 9.
    Service discovery andload balancing ● No need to modify your application to use an unfamiliar service discovery mechanism. ● Kubernetes gives containers their own IP addresses and a single DNS name for a set of containers, and can load-balance across them.
  • 10.
    Secret and Configurationmanagement Deploy and update secrets and application configuration without rebuilding your image and without exposing secrets in your stack configuration.
  • 11.
  • 12.
  • 13.
    Master Node ● TheKubernetes Master is a collection of three processes that run on a single node in your cluster, which is designated as the master node. ● Responsible for maintaining the desired state for your cluster. ● Master can also be replicated for availability and redundancy. ● Kube Api Server ● ETCD ● Kube Controller manager ● Kube scheduler
  • 14.
    Worker Node ● Thenodes in a cluster are the machines (VMs, physical servers etc) that run your applications and cloud workflows. ● Kubelet ● Kube-proxy ● Container runtime engine -docker
  • 15.
    Pods ● Basic buildingblock of Kubernetes–the smallest and simplest unit in the Kubernetes object model that you create or deploy ● Presents a running process on your cluster. ● Group of containers would share storage, Linux namespaces, IP addresses. ● Co-located, hence share resources and are always scheduled together. ● Created, destroyed and re-created on demand, based on the state of the server and the service itself. ● “one-container-per-Pod” model is the most common Kubernetes use case
  • 16.
    Deployments ● Level ofabstraction above pods ● Define the desired scale and state of a group of pods ● To rollout a replicas ● Rollback to earlier version ● Scaling your pods /application ● Pause deployment
  • 17.
  • 18.
    Services ● Kubernetes Podsare mortal. ● A Kubernetes Service is an abstraction which defines a logical set of Pods ● The set of Pods targeted by a Service is determined by a Label Selector ● Define a DNS entry that can be used to refer to a group of pods ● Provide a consistent endpoint for the group of pods ● Similar in functionality to load balancers
  • 19.
    Ingresses ● Define howtraffic outside the cluster is routed to inside the cluster ● Used to expose Kubernetes services to the world ● Route traffic to internal services based on factors such as host and path
  • 20.
  • 21.