Kubernetes 101 Fundamentals
Kubernetes 101 Fundamentals
By Sandip Das
Learn With Sandip
About me
Sandip Das
Lead DevOps Engineer & Cloud Solutions Architect
Connect
contact@sandipdas.in
What is Kubernetes?
Learn With Sandip
Using Kubernetes we can automate many of the manual processes involved in deploying,
managing, and scaling containerized applications.
Kubernetes aims to hide the complexity of managing containers through the use of several
key capabilities, such as REST APIs and declarative templates that can manage the entire
lifecycle.
Learn With Sandip
02 Production Ready
We can fully implement and utilize a container-based infrastructure in
our production environments using Kubernetes, also we can optimize
hardware usage to make the most of our computing resources.
03 Flexibility
We can declaratively manage services to ensure deployed applications
running as intended.
Dynamically mount and add storage to run stateful apps.
Do health checks and enable application self-healing. Automate and
control application deployments and updates
Birth of the Borg
System
From Borg to Omega 2003-2004
2013 Google Introduces
History of
Kubernetes
Kube v1.0 & CNCF
2014
Kubernetes 2015
Kubernetes Goes
Mainstream!
Enterprise Adoption &
Support 2016
2017 More Cloud Adoptions
- GKE, EKS, and AKS
become generally available
Kubectl
UI
Learn With Sandip
Cluster
A Kubernetes cluster is a collection of nodes on which
workloads can run, these nodes can be physical (bare
metal) machines, or virtual machines (VMs), or serverless
compute systems like Amazon Fargate.
Tips
assigned by the master node.
There must be a minimum of one master node and one worker node for a Kubernetes cluster to be operational
Kube Controller Manager: It always evaluates the current vs the desired state and
checks for a change in configurations, if any change in the configuration occurs, it spots
the change, starts working to get the desired state.
Cloud Controller Manager: This is responsible for managing controller processes with
dependencies on the underlying cloud provider
etcd: a simple, distributed key value storage which is used to store the Kubernetes
cluster data (such as number of pods, their state, namespace, etc),
Learn With Sandip
Container: This resides inside a pod. The container is the lowest level
of a micro-service, which holds the running application, libraries, and
their dependencies. Containers can be exposed to the world through
an external IP address. Kubernetes has supported Docker containers
since its first version. In July 2016 the rkt container engine was added
Kubernetes
Concepts
Learn With Sandip
kubectl
kubectl command is a line tool that interacts with kube-
apiserver and send commands to the master node. Each
command is converted into an API call.
Syntax
kubectl [command] [TYPE] [NAME] [flags]
simple-volume.yaml
What are Volume?
Volume in a simple sense is a directory containing data, just similar to
a container volume in Docker, but a Kubernetes volume applies to a
whole pod and is mounted on all containers in the pod.
Using Volume Kubernetes guarantees data is preserved across
container restarts
simple-deployment.yaml
What are Deployment?
A Deployment provides declarative updates for Pods and
ReplicaSets.