What is Kubernetes (K8s)? ● Open-source container orchestration tool ● Helps us manage containerized applications ● Developed by Google
What problems does Kubernetes solve?
Monolith to Microservices?
Increased Usage of Containers ● According to the Annual Flexera State of the Cloud Report from 2021, 53% of companies use Docker containers. ● Gartner's analysts predict that by 2022, more than 75% of global organizations running containerized applications
Why Kubernetes is Special?
Kubernetes Offers ● Scalability or high performance ● Availability or no downtime ● Disaster recovery or backup, restore
Kubernetes Popularity ● According to the 2022 CNCF Cloud Native Landscape Survey, over 69% of organizations are using Kubernetes in production, ● The number was 58% in 2021 and 30% in 2018.
Facts about Kubernetes Popularity ● World's leading technology companies, such as Amazon, Google, and Microsoft, are using Kubernetes to deploy their applications. ● Over 50% of Fortune 100 companies are using Kubernetes in production. ● Kubernetes has a commanding 92% market share among container orchestration tools ● There are now over 3.9 million developers worldwide who use Kubernetes.
Kubernetes Basic Architecture
Master Node ● API Server: Entry point for interacting with the cluster. ● Etcd: Stores the cluster's desired state configuration and current state data. ● Scheduler: Selects the most suitable node for each pod based on various factors like resource availability and pod requirements. ● Controller Manager: Maintains the desired state of the cluster by running various controllers that manage deployments, replica sets, nodes, and more.
Facts about Master Node ● It can be compared to the control plane or the brain of the cluster. ● It is a single point of control for managing the entire cluster, simplifying administration and configuration. ● It continuously comparing the current state with the desired state ● It automates tasks like scheduling, scaling, and healing, reducing manual intervention and improving efficiency ● It uses less resources than worker nodes ● It recommended to have more than one master node on production
Worker Nodes ● Kubelet: An agent that runs on each worker node. Manages pod lifecycle events (start, stop, restart) ● Container Runtime: Directly on the worker node's operating system and handles container lifecycles ● kube-proxy: Manages pod networking. Routes traffic to pods based on service definitions.
Facts about Worker Nodes ● They are the workhorses of the cluster. ● If master node is the brain then worker nodes are the muscles, executing the work. ● The performance of the applications directly depends on the capabilities of the worker nodes.
Pods & Containers
Pods & Containers ● A pod is the fundamental unit for deploying and managing applications ● It's like a little pod of peas, where each pea represents a container ● All the containers in a pod share the same storage and network resources ● Kubernetes treats the entire pod as a single unit ● Pods are ephemeral
Deployments ● A deployment is a Kubernetes object that specifies the desired state of your application, including: ○ The container image to use. ○ The number of replicas (instances) to run. ○ Resource requests and limits for each container. ○ Environment variables and other configuration. ● Deployments are commonly used for stateless applications ● Deployments manage ReplicaSets ● Kubernetes ensures that the actual state of your application converges to the desired state you defined
Deployments Sample
Horizontal vs Vertical Scaling
Horizontal Scaling ● Increases or decreases the number of pod replicas (instances) running your application ● Suitable for stateless applications with predictable resource demands Methods: ● Horizontal Pod Autoscaler (HPA): Automatically scales pods based on CPU, memory, or custom metrics. ● Manual Scaling: You manually adjust the number of pod replicas as needed.
Vertical Scaling ● Increases or decreases the resources allocated to individual pods. ● Useful for stateful applications or those with fluctuating resource needs. Methods: ● Vertical Pod Autoscaler (VPA): Automatically adjusts CPU and memory requests/limits for pods based on their usage. ● Manual Scaling: You manually adjust pod resource requests/limits.
Thank you.
References https://blog.palark.com/kubernetes-and-containers-market-trends-2021/ https://www.cncf.io/reports/cncf-annual-survey-2022/ https://www.ibm.com/blog/top-7-benefits-of-kubernetes/ https://humalect.com/blog/kubernetes-statistics https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

Kubernetes basics, Nodes, Pods, Containers, Deployments

  • 1.
    What is Kubernetes(K8s)? ● Open-source container orchestration tool ● Helps us manage containerized applications ● Developed by Google
  • 2.
    What problems doesKubernetes solve?
  • 3.
  • 4.
    Increased Usage ofContainers ● According to the Annual Flexera State of the Cloud Report from 2021, 53% of companies use Docker containers. ● Gartner's analysts predict that by 2022, more than 75% of global organizations running containerized applications
  • 6.
  • 7.
    Kubernetes Offers ● Scalabilityor high performance ● Availability or no downtime ● Disaster recovery or backup, restore
  • 8.
    Kubernetes Popularity ● Accordingto the 2022 CNCF Cloud Native Landscape Survey, over 69% of organizations are using Kubernetes in production, ● The number was 58% in 2021 and 30% in 2018.
  • 10.
    Facts about KubernetesPopularity ● World's leading technology companies, such as Amazon, Google, and Microsoft, are using Kubernetes to deploy their applications. ● Over 50% of Fortune 100 companies are using Kubernetes in production. ● Kubernetes has a commanding 92% market share among container orchestration tools ● There are now over 3.9 million developers worldwide who use Kubernetes.
  • 11.
  • 13.
    Master Node ● APIServer: Entry point for interacting with the cluster. ● Etcd: Stores the cluster's desired state configuration and current state data. ● Scheduler: Selects the most suitable node for each pod based on various factors like resource availability and pod requirements. ● Controller Manager: Maintains the desired state of the cluster by running various controllers that manage deployments, replica sets, nodes, and more.
  • 14.
    Facts about MasterNode ● It can be compared to the control plane or the brain of the cluster. ● It is a single point of control for managing the entire cluster, simplifying administration and configuration. ● It continuously comparing the current state with the desired state ● It automates tasks like scheduling, scaling, and healing, reducing manual intervention and improving efficiency ● It uses less resources than worker nodes ● It recommended to have more than one master node on production
  • 15.
    Worker Nodes ● Kubelet:An agent that runs on each worker node. Manages pod lifecycle events (start, stop, restart) ● Container Runtime: Directly on the worker node's operating system and handles container lifecycles ● kube-proxy: Manages pod networking. Routes traffic to pods based on service definitions.
  • 16.
    Facts about WorkerNodes ● They are the workhorses of the cluster. ● If master node is the brain then worker nodes are the muscles, executing the work. ● The performance of the applications directly depends on the capabilities of the worker nodes.
  • 17.
  • 18.
    Pods & Containers ●A pod is the fundamental unit for deploying and managing applications ● It's like a little pod of peas, where each pea represents a container ● All the containers in a pod share the same storage and network resources ● Kubernetes treats the entire pod as a single unit ● Pods are ephemeral
  • 19.
    Deployments ● A deploymentis a Kubernetes object that specifies the desired state of your application, including: ○ The container image to use. ○ The number of replicas (instances) to run. ○ Resource requests and limits for each container. ○ Environment variables and other configuration. ● Deployments are commonly used for stateless applications ● Deployments manage ReplicaSets ● Kubernetes ensures that the actual state of your application converges to the desired state you defined
  • 20.
  • 21.
  • 22.
    Horizontal Scaling ● Increasesor decreases the number of pod replicas (instances) running your application ● Suitable for stateless applications with predictable resource demands Methods: ● Horizontal Pod Autoscaler (HPA): Automatically scales pods based on CPU, memory, or custom metrics. ● Manual Scaling: You manually adjust the number of pod replicas as needed.
  • 23.
    Vertical Scaling ● Increasesor decreases the resources allocated to individual pods. ● Useful for stateful applications or those with fluctuating resource needs. Methods: ● Vertical Pod Autoscaler (VPA): Automatically adjusts CPU and memory requests/limits for pods based on their usage. ● Manual Scaling: You manually adjust pod resource requests/limits.
  • 24.
  • 25.