2. Agenda
Who am I?
What is a container?
What is docker?
What is kubernetes?
Self paced tutorial
Questions
Contact info
3. Who am I ?
Avanti Patil
Senior Software Engineer & Team Lead @Wayfair - Search
Platform
Founder and ex-president NUGWC
Technologies I enjoy working with : Java, Kubernetes, Docker,
Search engine (Solr , Elastic Search), Google GCP
Contact details :
Email : patilavanti16@gmail.com
Twitter : @ItsAvanti (I share technical content /memes)
Linkedin : https://www.linkedin.com/in/avantipatil/
4.
5. A container is a standard unit of software
that packages up
1. code
2. all its dependencies
Goal :
1. application runs quickly
2. reliably
3. Independent of computing
environment e.g. (local,
development,prod)
What is Container?
6. Docker is a container management
service.
The keywords of Docker are develop,
ship and run anywhere.
- easily develop applications
- ship them into containers
- deployed anywhere.
What is Docker?
7. Kubernetes
Kubernetes is a
Portable
Extensible,
Open-source platform
for managing containerized workloads
and services,
facilitates both declarative configuration
and automation.
● It has a large, rapidly growing
ecosystem.
● Kubernetes services, support, and
tools are widely available.
● The name Kubernetes originates
from Greek, meaning helmsman or
pilot.
● Kubernetes is also called as k8s.
8. ● Allows automated rollouts to create new
containers.
● Allows automated rollbacks and adopt all
their resources to the new containers.
● Self-healing : where k8s restarts
containers that fail and wait till they
become healthy to server new traffic.
● Service discovery and load balancing :
based on your CPU and memory (RAM)
limits for container k8s will can fit
containers onto your nodes to make the
best use of your resources.
Why use Kubernetes? Or k8s?
● Secret management: Kubernetes lets you
store and manage sensitive information,
such as passwords, OAuth tokens, and
SSH keys.
● Configuration management: You can
deploy and update secrets and application
configuration without rebuilding your
container images, and without exposing
secrets in your stack configuration.
● Storage orchestration: Kubernetes allows
you to automatically mount a storage
system of your choice eg. local or cloud
provider.
10. Master node acts as a primary control pane for kubernetes.
● Kube Scheduler - runs a control loop/ state management for pod scheduling
● Kube API server - a component of the Kubernetes control plane that exposes
the Kubernetes API.
● Controller manager - component that runs controller processes. Like node
controller, job controller etc.
● etcd - Consistent and highly-available key value store used as Kubernetes'
backing store for all cluster data.
Kubernetes Architecture - Master node
11. Worker nodes are tasked with running workloads (pods) designated by Master
node.
● kubelet - An agent that runs on each node in the cluster. It makes sure that
containers are running in a Pod.
● kube proxy - kube-proxy is a network proxy that runs on each node in your
cluster, implementing part of the Kubernetes Service concept.
● Container runtime - the software that is responsible for running containers.
Kubernetes Architecture - Worker node
12. What is a pod?
Pods are the smallest deployable units of
computing that you can create and
manage in Kubernetes.
In terms of Docker concepts, a Pod is
similar to a group of Docker containers
with shared namespaces and shared file
system volumes.
Imp k8s command:
Kubectl get pods
A ReplicaSet is one of the Kubernetes controllers
that makes sure we have a specified number of pod
replicas running all the time.
(Remember, a controller in Kubernetes is what takes
care of tasks to make sure the desired state of the
cluster matches the observed state.)
However, a Deployment is a higher-level concept
that manages ReplicaSets and provides declarative
updates to Pods along with a lot of other useful
features.
Therefore, k8s recommends using Deployments
instead of directly using ReplicaSets.
What is a ReplicaSet &
deployment?
13. Local k8s development options
● minikube:
minikube quickly sets up a local Kubernetes cluster on macOS, Linux, and
Windows. https://minikube.sigs.k8s.io/docs/
● Docker with kubernetes:
Setup a fully functional Kubernetes environment on your desktop with a single
click and start developing and testing modern applications in minutes.
https://www.docker.com/blog/docker-windows-desktop-now-kubernetes/
15. Kubernetes Questions
● How kubernetes works and automates deployment link
● Why is kubernetes useful - slide#8
● What are the recent security issues with kubernetes - link
● I want to learn about Kubernetes - link
● Just a general outlook of its purpose in projects and extensibility. link
● What web hosting problems does it solve?
● How does search systems work using K8s? link
● How does Kubernetes support auto scaling? link
16. Questions for Avanti
● What a person needs to know apart industry prospective apart from the content in this
workshop
● What are the basics of kubernetes which a security student needs to know link
● How do we start learning Kubernetes? Link.
● Is there any place to try hands on for kubernetes (demo)? use katakoda
● Full time opportunities at Wayfair - mostly senior roles link
● What is the future if cloud and Kubernotes technology professional?
● what other places are K8s used in Wayfair?
● What advice would you give to women who aspire to be in a leadership role?
● What KPIs do you use to measure your impact on the team and it’s strategy?